2012-02-29 10 views
0

私はカスタム行を含むリストビューを持っています。リストビューをカスタム行で表示すると、すべての行の高さは約2ピクセルに過ぎません。私はAndroid 4.0デバイスとAndroid 2.xを搭載したエミュレータで試しました。問題のスクリーンショットを追加しました。ここでは、準備コードのかなり多くが来る :リストビューのカスタム行 - 十分ではない

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="105px" 
    android:background="#fff" 
    android:orientation="vertical" 
    android:paddingLeft="15dp" > 

    <TextView 
     android:id="@+id/toptext" 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="8px" 
     android:gravity="top" 
     android:text="name" 
     android:textColor="#322a37" 
     android:textSize="11pt" /> 

</RelativeLayout> 

私の活動のコード:

public class ListActivity extends BaseActivity { 
    private ArrayList<User> m_items; 
    private ObjectAdapter m_adapter; 
    private EditText textSearch; 
    private ListView listView; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.list); 

     textSearch = (EditText) findViewById(R.id.textSearch); 
     listView = (ListView) findViewById(R.id.listView); 

     m_items = new ArrayList<User>(); 

     //(fill m_items, goes well) 

     this.m_adapter = new ObjectAdapter(this, R.layout.row_text, m_items); 
     listView.setAdapter(this.m_adapter); 

    } 

    private class ObjectAdapter extends ArrayAdapter<User> { 

     private ArrayList<User> items; 

     @SuppressWarnings("unchecked") 
     public ObjectAdapter(Context context, int textViewResourceId, 
       ArrayList<User> items) { 
      super(context, textViewResourceId, items); 
      this.items = items; 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      View v = convertView; 
      if (v == null) { 
       LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       v = vi.inflate(R.layout.row_text, null); 
      } 
      User u = items.get(position); 
      if (u != null) { 
       TextView top = (TextView) v.findViewById(R.id.toptext); 

       if (top != null) { 
        top.setText(u.getName()); 
       } 
      } 
      return v; 
     } 
    } 
} 

The screenshot of the result:

誰でも

これは私のカスタム列のための私のコードですこれがなぜ起こっているのか?

答えて

3

ライン:

android:layout_height="0dip" 

は特に賢いものとして私を打つことはありません。

+0

笑..どのように私はとても愚かなことができます。ありがとうございました、しばらく検索した後、このタイプミスが見られませんでした。 – harmjanr

1

カスタム行xmlを編集し、TextViewの高さを修正します。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="105px" 
android:background="#fff" 
android:orientation="vertical" 
android:paddingLeft="15dp" > 

<TextView 
android:id="@+id/toptext" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_alignParentBottom="true" 
android:layout_alignParentTop="true" 
android:layout_marginTop="8px" 
android:gravity="top" 
android:text="name" 
android:textColor="#322a37" 
android:textSize="11pt" /> 

関連する問題