アプリケーション マニフェストの適切なエントリを使用して、アプリケーション全体に適用されるカスタム テーマでTextAppearance.Mediumをオーバーライドしようとしています。何らかの理由で、指定したスタイルは、カスタム レイアウトと SimpleAdapter を使用して入力している ListView 内にネストされたビューには適用されません。スタイルは、 ListView にバインドされたアイテムではない TextView ビューに適用されます。
テーマ定義とカスタム レイアウトのサンプルを以下に示します。
明確にするために、カスタム レイアウトを使用してリストに項目を設定する際に問題はありません。私のテーマは間違いなくアプリケーション全体に適用されています。また、RelativeLayout を使用してリスト項目のレイアウトを最適化できることも認識しています。リスト項目のスタイルが正しく設定されていない理由についての答えを探しているだけです。
テーマ継承の機能を誤解していますか、または継承/オーバーライドする必要がある追加のリスト固有のスタイルがありますか?
API レベル 7 (Android 2.1)
HTC Evo 4G と汎用 AVD デバイスを使用したテスト
テーマの定義
<style name="Theme" parent="android:Theme.Light.NoTitleBar">
<item name="android:textAppearanceMedium">@style/TextAppearance.Medium</item>
</style>
<style name="TextAppearance.Medium" parent="android:style/TextAppearance.Medium">
<item name="android:textColor">@android:color/black</item>
</style>
リスト アイテム レイアウトの定義
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:orientation="horizontal" android:padding="10dp">
<TextView android:layout_width="wrap_content" android:text="TextView" android:id="@+id/jobItemDateDueTextView" android:layout_height="fill_parent" android:gravity="center" android:textStyle="bold" android:layout_marginRight="15dp"></TextView>
<LinearLayout android:layout_width="wrap_content" android:layout_height="fill_parent" android:orientation="vertical">
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:id="@+id/jobItemHeaderTextView" android:maxLines="1" android:textAppearance="?android:attr/textAppearanceMedium"></TextView>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:id="@+id/jobItemContentTextView"></TextView>
</LinearLayout>
</LinearLayout>