Android 工具栏上的文本背景问题
在为我的工具栏背景色添加一些alpha时,我注意到标题的TextView应用了一个背景: 这是我的布局:Android 工具栏上的文本背景问题,android,android-toolbar,Android,Android Toolbar,在为我的工具栏背景色添加一些alpha时,我注意到标题的TextView应用了一个背景: 这是我的布局: <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:lay
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="#0099cc">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:theme="@style/FullscreenActionBarStyle"
app:titleTextAppearance="@style/ActionBarTitle"/>
<ImageView
android:id="@+id/fullscreen_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/image"/>
</FrameLayout>
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowActionBar">false</item>
<item name="windowActionBar">false</item>
</style>
<style name="FullscreenTheme" parent="AppTheme">
<item name="android:windowBackground">@null</item>
<item name="metaButtonBarStyle">?android:attr/buttonBarStyle</item>
<item name="metaButtonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
<item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>
<item name="android:windowActionBarOverlay">true</item>
<!--For compatibility-->
<item name="actionBarStyle">@style/FullscreenActionBarStyle</item>
<item name="windowActionBarOverlay">true</item>
</style>
<style name="FullscreenActionBarStyle" parent="Widget.AppCompat.ActionBar">
<item name="background">@color/black_overlay</item>
<item name="android:background">@color/black_overlay</item>
</style>
<style name="ActionBarTitle" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
<item name="android:textSize">50sp</item>
</style>
</resources>
和我的风格。xml:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="#0099cc">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:theme="@style/FullscreenActionBarStyle"
app:titleTextAppearance="@style/ActionBarTitle"/>
<ImageView
android:id="@+id/fullscreen_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/image"/>
</FrameLayout>
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowActionBar">false</item>
<item name="windowActionBar">false</item>
</style>
<style name="FullscreenTheme" parent="AppTheme">
<item name="android:windowBackground">@null</item>
<item name="metaButtonBarStyle">?android:attr/buttonBarStyle</item>
<item name="metaButtonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
<item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>
<item name="android:windowActionBarOverlay">true</item>
<!--For compatibility-->
<item name="actionBarStyle">@style/FullscreenActionBarStyle</item>
<item name="windowActionBarOverlay">true</item>
</style>
<style name="FullscreenActionBarStyle" parent="Widget.AppCompat.ActionBar">
<item name="background">@color/black_overlay</item>
<item name="android:background">@color/black_overlay</item>
</style>
<style name="ActionBarTitle" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
<item name="android:textSize">50sp</item>
</style>
</resources>
@颜色/原色
@颜色/原色暗
@颜色/颜色重音
假的
假的
@空的
?安卓:属性/按钮样式
?android:attr/buttonBarButtonStyle
@样式/全屏ActionBarStyle
真的
@样式/全屏ActionBarStyle
真的
@彩色/黑色覆盖
@彩色/黑色覆盖
50便士
“黑色覆盖”颜色值为#66000000
我正在使用AppCompat和支持库v24.2.1
你知道如何摆脱这种文本背景吗
干杯。将文本视图封装在工具栏内,并设置其值
<android.support.v7.widget.Toolbar
...>
<TextView ... />
</android.support.v7.widget.Toolbar>
好的,删除FullscreenActionBarStyle样式上的背景属性并将其放在工具栏布局定义中,这样就可以工作了。
正如@apelsoczi所指出的,工具栏样式中的这些属性设置也将它们应用于子组件。正如您在下面看到的,问题来自属性
app:theme
。它应用于视图组膨胀的每个视图。
将app:theme
替换为style
:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
style="@style/FullscreenActionBarStyle"
app:titleTextAppearance="@style/ActionBarTitle"/>
好吧,这是一个很难解决的问题,不是最好的解决方案:如果这对您有效,请选择答案作为选择的解决方案,正式结束StackOverflow问题。了解一下为什么会发生这种情况:请记住,工具栏是一个具有多个子布局和其他视图的视图组,您为视图组更改的属性将始终由子视图继承。完美,最酷的是,你可以同时使用app:theme
,设置除背景之外的所有属性,并将其保持在样式中