我一直在尝试使用支持库自定义工具栏。虽然设置android:theme在API21 +上完美运行,但较低的API似乎完全忽略它。
这是我的xml:
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
使工具栏在API21 +中显示白色图标,旧设备上的图标保持黑色。
更新:我通过向appBarLayout添加另一个孩子(tabLayout)进行测试。主题已正确应用。但是,即使直接设置,支持工具栏也完全拒绝识别主题。
答案 0 :(得分:3)
所以我确定了:
setContentView(R.layout.main);
之后:
super.onCreate(savedinstancestate);
答案 1 :(得分:0)
嘿,你必须使用版本号制作样式文件。 为此,请转到值并右键单击,然后单击“值资源”文件 然后将文件命名为样式,然后在选项可用限定符下的对话框中选择版本文件,然后按图标&gt;&gt;然后在其上输入版本19,此文件将适用于低于Api 21 +
的版本this is the dialog you will get on click of value Resource file
this is the final dialog where you need to enter your version number
它可能对你有帮助。
答案 2 :(得分:0)
您已在基于API版本的文件夹中设置主题样式并应用,因此它将根据API版本进行应用。
将主题放在styles.xml中。 然后在values文件夹中为不同的基于API级别的文件夹复制styles.xml [根据你的要求你必须创建value-X文件夹] 请参考下图。