simple_list_item_1 に似た XML レイアウトを使用してコンテンツを膨らませる with がありますListView
。ArrayAdapter
アプリ メニューには、テキスト サイズを増減するための 2 つのオプションがあります。の関数をオーバーライドすることで、 の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 を null にして、アダプターを常に膨張させます。その場合、高さが折り返されるため、テキスト サイズを小さくすると問題なく動作します。しかし、私は仕事の過負荷を引き起こしているので、それは望ましくありません。
リストビューやテキストビューの無効化またはレイアウトの強制を試みましたが、うまくいきませんでした。
どんな助けでも大歓迎です
編集:これは 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 は、デフォルトでは 22 dp、ラージでは 40 dp です。
編集2:このように見える
この画面の代わりに: