【发布时间】:2016-02-20 16:39:40
【问题描述】:
操作栏和堆叠栏(包含导航选项卡的栏)是否可以共享相同的背景图像?从操作栏开始到堆叠栏结束?
目前实现这一点的方式,最终拥有带有自己图像的操作栏和带有自己的堆叠栏。
我的样式.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="android:actionMenuTextColor">@color/app_yellow</item>
<item name="android:windowActionBarOverlay">true</item>
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/MyActionBar</item>
<item name="actionMenuTextColor">@color/app_yellow</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
<item name="android:titleTextStyle">@style/MyActionBarTitleText</item>
<item name="android:actionBarTabTextStyle">@style/MyActionBarTabText</item>
<item name ="android:actionBarTabStyle">@style/MyTabStyle</item>
<item name="background">@drawable/actionbar</item>
</style>
<!-- individual ActionBar tabs style -->
<style name="MyTabStyle" parent ="Widget.AppCompat.Light.ActionBar.TabView">
<item name ="background">@android:color/transparent</item>
<item name ="android:background">@android:color/transparent</item>
</style>
在我的活动中
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar actionBar = getSupportActionBar();
// Specify that tabs should be displayed in the action bar.
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setLogo(R.mipmap.ic_launcher);
actionBar.setDisplayUseLogoEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setStackedBackgroundDrawable(getResources().getDrawable(R.drawable.actionbar));
【问题讨论】:
-
与其让它们共享背景图像,我更有意义的是让操作栏和堆叠栏透明并在下面显示背景图像。
-
@DaveS 你怎么能做到这一点,顺便说一下我的活动有不同的背景图片?
-
您必须设置应用级别的背景图像,然后在操作栏下方有一个父布局,该布局具有所需的“主”背景图像。然后将操作栏背景设置为透明以显示应用级别的图像。只是值得尝试的东西。我个人已经不再使用我的应用中的操作栏,因为它们很难自定义。
-
您也可以尝试确定操作栏是否被拆分,然后加载两个排列在一起的不同可绘制对象,否则使用您想要的单个可绘制对象。 stackoverflow.com/questions/10105473/…
-
不要依赖旧的
ActionBar。无论如何,谷歌正在摆脱这种模式。请改用Toolbar。您仍然可以像对待ActionBar一样通过扩展菜单、设置标题文本等来处理它。但您也可以在其中放置其他视图。看看他们的Design Support Library。为了做你想做的事,你需要在Toolbar中包含一个TabLayout。再简单不过了。
标签: android android-actionbar android-styles android-style-tabhost