如何设置自定义列表视图项的高度?

时间:2014-09-10 18:28:40

标签: android listview android-listview

已经有很多关于这方面的问题,但没有人可以帮助我。 我已经尝试使用view.setMinimumHeigth(minHeigth)的类适配器,但没有工作。 我尝试使用View view = inflater.inflate(R.layout.list_note_item,parent);,但应用程序崩溃了; 唯一一个足够接近的是: View view = inflater.inflate(R.layout.list_note_item,parent,false);然后项目具有相同的高度,但它们只显示第一个textview而不显示第二个textview。 我怎么能这样做?

这是我的list_item xml布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/note_item_heigth"
android:orientation="vertical" >

    <TextView
        android:id="@+id/textview_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#000000"
        android:background="#FFFFFF"
        android:textSize="16sp"
        />

    <TextView
        android:id="@+id/textview_note"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#808080"
        android:background="#FFFFFF"
        android:textSize="14sp"
        android:maxLength="80" 
        />

和我的listview xml布局:

<ListView 
    android:id="@+id/list_notes"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:divider="@android:color/transparent"
    android:dividerHeight="@dimen/space_between_items"
    ></ListView>

和我的班级适配器

public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View view = inflater.inflate(R.layout.list_note_item,parent,false);
    TextView title = (TextView)view.findViewById(R.id.textview_title);
    TextView note = (TextView)view.findViewById(R.id.textview_note);
    title.setText("test");
    note.setText("TEST");

提前致谢!

1 个答案:

答案 0 :(得分:1)

如果您的LinearLayout必须使用@dimen/note_item_heigth,那么请让您的textviews共享给定的高度:

<TextView
    android:id="@+id/textview_title"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:textColor="#000000"
    android:background="#FFFFFF"
    android:textSize="16sp" />

<TextView
    android:id="@+id/textview_note"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:textColor="#808080"
    android:background="#FFFFFF"
    android:textSize="14sp"
    android:maxLength="80" />

注意:您可能需要降低textSize,以使文本适合TextView。


否则,如果您不关心List项的高度,那么您可以将LinearAdapter设置为wrap_content并完成它:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >