【发布时间】:2018-09-23 22:15:41
【问题描述】:
我尝试使用此主题/样式将图像添加到 ActionBar 背景
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
<item name="android:background">@drawable/actionbar_background</item>
</style>
虽然背景正在改变,但它在标题和菜单按钮上产生了奇怪的效果。就像认为它们是 ActionBar 中的单独子视图(也许它们是,我不确定)并且 Drawable 被单独应用于它们。
我希望在 ActionBar 上应用无缝的 Drawable。这是可能的还是我应该放弃,而只是用纯色改变背景?
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/layout_activity_main"
tools:context=".MainActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_main" />
</android.support.design.widget.CoordinatorLayout>
styles.xml
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="coordinatorLayoutStyle">@style/Widget.Support.CoordinatorLayout</item>
<item name="colorAccent">@android:color/black</item>
<item name="colorPrimary">@android:color/holo_blue_dark</item>
<item name="colorPrimaryDark">@android:color/holo_blue_dark</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:textColorSecondary">@android:color/white</item>
<item name="android:textColorHint">@android:color/white</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="android:windowBackground">@drawable/no_actionbar_background</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
<item name="android:background">@drawable/actionbar_background</item>
</style>
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light">
<item name="android:background">@android:color/black</item>
</style>
</resources>
【问题讨论】:
-
你能提供一些代码吗? style.xml,您的活动的 xml 等。我能够复制您的问题,但我无法猜测您的实现。
-
没有必要显示任何 java 代码,因为我目前没有在其中做任何事情。在开始主要编码之前,我正在尝试整理主题。这一切都在styles.xml 中。我只需要将平滑的图像应用到标准操作栏。
标签: android android-actionbar android-theme