我正在尝试创建一个ListView,其中的项目包含两行文本,一行的字体比另一行更大。 TwoLineListItem似乎是我需要的,但每当我尝试运行这样的活动时应用程序崩溃。有什么建议吗?
<TableLayout
android:id="@+id/tableLayout1"
android:layout_height="match_parent"
android:layout_width="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:mode="twoLine"
>
<TextView android:id="@android:id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
/>
<TextView android:id="@android:id/text2"
android:layout_width="fill_parent"
android:layout_marginLeft="5dip"
android:layout_height="wrap_content"
android:layout_below="@android:id/text1"
android:layout_alignLeft="@android:id/text1"
android:textAppearance="?android:attr/textAppearanceSmall"
/>
</TwoLineListItem>
<TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:mode="twoLine"
>
<TextView android:id="@android:id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
/>
<TextView android:id="@android:id/text2"
android:layout_width="fill_parent"
android:layout_marginLeft="5dip"
android:layout_height="wrap_content"
android:layout_below="@android:id/text1"
android:layout_alignLeft="@android:id/text1"
android:textAppearance="?android:attr/textAppearanceSmall"
/>
</TwoLineListItem>
答案 0 :(得分:1)
我会在您的android.R.layout.two_line_list_item
方法中夸大getView()
并将您的值绑定到该值。该布局中的TextView ID为android.R.id.text1
和android.R.id.text2
。下面是一个getView()的例子,它接近你想要的。
public View getView(int pos, View view, ViewGroup viewGroup) {
if (view == null) {
view = View.inflate(MyActivity.this, android.R.layout.two_line_list_item, null);
}
TextView text = (TextView) view.findViewById(android.R.id.text1);
text.setText("Big Font Text");
text = (TextView) view.findViewById(android.R.id.text2);
text.setText("Small Font Text");
return view;
}