我正在用android.support.v7.widget.Toolbar小部件编写自己的工具栏,我想尽可能多地放入res文件夹中的styles.xml。
/res/layout/$example.xml
中文件的一部分<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/toolbar_show_addresses_simple"
app:style="@style/toolbar_dark" >
我的“toolbar_dark”在a中定义如下 /res/values/styles.xml
<style name="toolbar_dark">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:background">@color/myPrimary</item>
<item name="app:theme">@style/ThemeOverlay.AppCompat.Dark</item>
<item name="app:popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
<item name="app:contentInsetStart">0dp</item>
</style>
编译时
Output:
Error: No resource found that matches the given name: attr 'app:contentInsetStart'.
Error: No resource found that matches the given name: attr 'app:popupTheme'.
Error: No resource found that matches the given name: attr 'app:theme'.
如果我直接在$ example.xml中使用app:*值,一切正常。 因此,如何在res文件夹中的文件中使用我的app命名空间?
答案 0 :(得分:63)
您不能在样式文件中使用应用程序命名空间,并且应该在布局中引用带有app命名空间的style
属性。
你可以这样做:
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/toolbar_show_addresses_simple"
style="@style/toolbar_dark" >
风格:
<style name="toolbar_dark" parent="Widget.AppCompat.Toolbar">
<item name="android:background">@color/green</item>
<item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
<item name="theme">@style/ThemeOverlay.AppCompat.Dark</item>
</style>
答案 1 :(得分:-5)
在样式文件中使用Android
替换app
:
<style name="toolbar_dark">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:background">@color/myPrimary</item>
<item name="android:theme">@style/ThemeOverlay.AppCompat.Dark</item>
<item name="android:popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
<item name="android:contentInsetStart">0dp</item>
</style>