3

私はテキストビューを持っています:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:background="@drawable/item_table_light_grey"
          android:gravity="center"
          android:orientation="vertical" >

    <TextView
            android:id="@android:id/text1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#000000"
            />
</LinearLayout>

コードを使用してテキストのサイズを変更すると

TextView textView = (TextView) view.findViewById(android.R.id.text1);
textView.setTextSize(adapter.getTextSize());

テキストサイズは正常に変更されましたが、textView の幅と高さは変更されませんでした。私は何を間違っていますか?

4

3 に答える 3

8

Android は、一度表示されたビューのレイアウトを「wrap_content」で更新しません。

したがって、子ビューを追加したり、コンテンツを動的に変更したりすると、うんざりします。

それを解決するために、サイズを再計算し、「wrap_content」でビューのレイアウトを強制的に更新する静的クラスを作成しました。使用するコードと手順は、次の場所にあります。

https://github.com/ea167/android-layout-wrap-content-updater

別の解決策は、layout_width と layout_height に固定値を設定し、TextView にgravity="center" を追加し、wrap_content を削除することです。

それが役に立てば幸い!

于 2014-04-02T20:47:29.423 に答える