我有一个使用类似于 simple_list_item_1 的 XML 布局来扩充其内容的ListView
with an 。ArrayAdapter
我在应用程序菜单中有两个选项来增加/减小文本大小。我设法TextViews
通过ListView
覆盖getView
. ArrayAdapter
像这样的东西:
adapter = new ArrayAdapter<Line>(MyActivity.this, R.layout.line_list, lines){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView = (TextView) super.getView(position, convertView, parent);
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, fontSizeDp + zoom);
return textView;
}
};
listView.setAdapter(adapter);
菜单选项更改缩放值并调用adapter.notifyDataSetChanged();
以使适配器更改文本大小。在那之前一切正常。
问题是,当我将文本大小减小太多时,每个 TextView 的高度都不会包裹其内容。也就是说,ListView 的项太高了。当我增加文本大小时,项目高度没有问题。
如果我调用 super.getView(position, convertView, parent); 在 convertView 为空的情况下,我使适配器始终膨胀。在这种情况下,由于高度被换行,因此减小文本大小可以正常工作。但是,我导致工作超负荷,我不希望这样。
我尝试使列表视图和/或文本视图无效或强制布局,但它不起作用。
任何帮助表示赞赏
编辑:这是 line_list 布局:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="@dimen/lineTextSize"
android:gravity="center"
android:paddingLeft="6dip"
android:paddingRight="6dip" />
lineTextSize 默认为 22dp,大为 40dp
编辑2:看起来像这样
而不是这个屏幕: