appcompat 22.1.0中的android:theme是否仅适用于工具栏?

时间:2015-04-23 12:44:13

标签: android android-appcompat

在以下布局中

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark">

        <TextView
            android:id="@+id/name"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </LinearLayout>

TextView未在pre-L设备上使用主题文字颜色。如果我将此主题声明移动到TextView,它适用于所有设备。 Chris Banes在他的文章中写道:

  

在22.1.0中,我们现在已经扩展了该功能,以便您可以进行设置   布局中任何视图的主题。   https://chris.banes.me/2015/04/22/support-libraries-v22-1-0/

所以我很困惑,bug?

修改

我查看工具栏和工具栏似乎也有这个问题 - 以下布局也没有按预期工作:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <TextView
        android:layout_width="wrap_content"
        android:text="#@#@SDAG"
        android:layout_height="wrap_content" />
</android.support.v7.widget.Toolbar>

2 个答案:

答案 0 :(得分:0)

我找到了问题的根源。我直接在R.id.content中添加了项目。与LayoutInflater.from(this).inflate(R.layout.my_activity, findViewById(R.id.content);类似,而不是使用setContentView方法完成所有神奇的工作。遗憾的是,在文档中没有必须使用setContentXXX方法。

答案 1 :(得分:-1)

对于支持lib的新版本(v22.1),您的活动应该扩展ActionBarActivity,而不是您过去延长的{{1}}。

以下是Google开发者的帖子:http://android-developers.blogspot.com/2015/04/android-support-library-221.html