如何覆盖布局嵌套视图的样式?

时间:2011-06-12 00:45:34

标签: java android android-layout android-theme

我试图在自定义主题中覆盖 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>

1 个答案:

答案 0 :(得分:3)

继续上述评论主题的讨论,应用程序Context将不会带有与您Activity相同的主题信息。当您需要Activity来生成UI元素时,请使用Context实例。