0

我可能只是在滥用 XML,但我正在尝试为列表视图行创建布局,但我似乎失败了。

我有这个:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:orientation="vertical"
    android:paddingLeft="20dp"
    android:paddingRight="20dp" >

    <TextView android:id="@+id/titleTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/detailsTextView"
        android:textSize="16sp"/>

    <TextView android:id="@id/detailsTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="12sp"/>


</RelativeLayout>

希望我能够添加一个高度为 100dp 的布局,并在ListView其中包含两个TextViews。但是,当我尝试像这样设置它时:

public View getView(int position, View currentView, ViewGroup parent)
{
    View rowContents = LayoutInflater.from(mContext).inflate(R.layout.list_view_cell, null);
    TextView titleView = (TextView)rowContents.findViewById(R.id.titleTextView);
    titleView.setText(titles[position]);
    TextView detailsView = (TextView)rowContents.findViewById(R.id.detailsTextView);
    detailsView.setText(details[position]);

    return rowContents;
}

它给了我一行,只有我的 detailsViewTextView有一个wrap_content高度,似乎。titleView 无处可见,我会假设 rowContents 也没有设置,否则高度将为 100dp,对吗?

我知道我应该重用旧视图并设置其内容,但我只是快速将其作为测试。

这里出了什么问题?

4

1 回答 1

2

尝试设置较低的 TextViewlayout_below代替:

<TextView android:id="@+id/titleTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="16sp"/>

<TextView android:id="@+id/detailsTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/titleTextView"
    android:textSize="12sp"/>

(否则您可能会“锁定”titleTextView到左上角,这可能会迫使detailsTextView您向下移动。)

但是您应该观看Android 的主要程序员之一的Google Talk,它提供了有关如何制作高效适配器的详细信息。

于 2013-01-14T19:41:55.407 回答