我只是在简单的1-Activty-Project中寻找解决方案 如何在android中获取动作栏?
如果我使用以下内容,一切正常但没有布局:
actionBar = getActionBar();
[..] register viewpager, add tabs dynamically etc [...]
我现在可以在java中添加布局参数..
但是,我想通过函数覆盖onCreateOptionsMenu()来为我的操作栏定义这样的.xml:
@override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_activity, menu);
return super.onCreateOptionsMenu(menu);
}
main_activity.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_main_activity"
android:icon="@drawable/logo"
android:title="@string/app_name"
android:showAsAction="ifRoom|withText" />
</menu>
如果我这样做,我得到的动作栏加倍......但是如何以正确的方式做到这一点? 我做错了什么..?
答案 0 :(得分:1)
您需要在style
values/styles
创建<style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar">
<item name="android:background">@drawable/bar</item>
<item name="android:textColor">@drawable/white</item>
</style>
来更改其外观
<style name="CustomActivityTheme" parent="@android:style/Theme.Holo.Light"> // this is telling the app to use your custom themes for the actionbar
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
然后创建自定义应用程序主题以使用操作栏
ActionBar actionBar = getActionBar();
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setCustomView(v);
或者你可以使用。
layout
在膨胀您想要使用的onCreateOptionsMenu()
之后。无论哪种方式,您仍然会覆盖{{1}}以获取菜单的功能