目前它只显示应用程序的名称,我希望它显示自定义的内容,并在我的应用程序中为每个屏幕显示不同的内容.
例如:我的主屏幕可以在操作栏中显示"page1",而应用切换到的另一个活动可以在该屏幕操作栏中显示"page2".
我正试图在Android上的ActionBar上做一些事情.
我已经在操作栏的右侧添加了新项目.
如何更改操作栏的左侧?我想更改图标和文本,我想在操作栏中为其他屏幕添加"后退按钮"

我使用actionbarsherlock.下面的代码片段负责将其背景更改为自定义代码.
<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.ActionBar">
<item name="background">@drawable/actionbar_bg</item>
<item name="android:background">@drawable/actionbar_bg</item>
<...>
</style>
<style name="Theme.MyApp" parent="@style/Theme.Sherlock.Light">
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
<..>
</style>
Run Code Online (Sandbox Code Playgroud)
它适用于actionbarsherlock(在蜂窝下面的版本).但是在ICS中,我在动作栏下面有一个阴影,我不想要.什么样的项目让它消失?
纵观在为Android"L"预览API diff报告,我看到与在导航模式的所有方法ActionBar类(如setNavigationMode(),addTab(),selectTab(),&C).现已弃用.
文档说明:
不推荐使用操作栏导航模式,内联工具栏操作栏不支持.请考虑使用其他常见的导航模式.
什么是假设的替代品?
另外,"内联工具栏操作栏"是一个新概念吗?我不认为我以前听说过.
android android-actionbar android-navigation android-5.0-lollipop
我已经能够使用以下建议自定义操作栏的背景,徽标图像和文本颜色:
Android:如何将ActionBar"Home"图标更改为应用程序图标以外的其他内容?
ActionBar文本颜色
ActionBar背景图片
我要自定义的最后一块是后退按钮图像.它默认是灰色的,我希望它是白色的.更改颜色,指定可绘制或简单地使其透明(并将V形符号添加到我的自定义徽标图像)将起作用.我该怎么做?
在谷歌推出Material Design之后,我听说过一个名为Toolbar的新小部件类.
什么是工具栏,ActionBar和ToolBar之间的确切区别是什么?
我ActionBar每次创建一个活动时都试图获得(使用Sherlock)的高度(特别是在ActionBar高度可能改变的情况下处理轮换时的配置更改).
为此,我使用的方法ActionBar.getHeight()仅在ActionBar显示时才有效.
当第一次创建的第一个活动,我可以调用getHeight()的onCreateOptionsMenu回调.但是这个方法之后没有被调用.
所以我的问题是我什么时候可以调用getHeight()并确保它不会返回0?或者如果不可能,我如何设置ActionBar的高度?
当使用导航抽屉时,Android开发人员建议在ActionBar中"只有那些在导航抽屉中表示的屏幕应该实际上具有导航抽屉图像",并且"所有其他屏幕都具有传统的向上克拉".
详情请见:http://youtu.be/F5COhlbpIbY
我正在使用一个活动来控制多个级别的片段,并且可以使导航抽屉图像在所有级别上显示和运行.
创建较低级别的片段时,我可以调用ActionBarDrawerToggle setDrawerIndicatorEnabled(false)隐藏导航抽屉图像并显示向上插入符号
LowerLevelFragment lowFrag = new LowerLevelFragment();
//disable the toggle menu and show up carat
theDrawerToggle.setDrawerIndicatorEnabled(false);
getSupportFragmentManager().beginTransaction().replace(R.id.frag_layout,
lowFrag, "lowerFrag").addToBackStack(null).commit();
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是当我导航回到最高级别的片段时,向上克拉仍然显示而不是原始的导航抽屉图像.有关如何"刷新"顶级片段上的ActionBar以重新显示导航抽屉图像的任何建议?
汤姆的建议对我有用.这是我做的:
此活动控制应用程序中的所有片段.
在准备新片段以替换其他片段时,我将DrawerToggle设置为setDrawerIndicatorEnabled(false):
LowerLevelFragment lowFrag = new LowerLevelFragment();
//disable the toggle menu and show up carat
theDrawerToggle.setDrawerIndicatorEnabled(false);
getSupportFragmentManager().beginTransaction().replace(R.id.frag_layout,
lowFrag).addToBackStack(null).commit();
Run Code Online (Sandbox Code Playgroud)
接下来,在覆盖中onBackPressed,我通过将DrawerToggle设置为这样来恢复上面的内容setDrawerIndicatorEnabled(true):
@Override
public void onBackPressed() {
super.onBackPressed();
// turn on the Navigation Drawer image;
// this is called in the LowerLevelFragments
setDrawerIndicatorEnabled(true)
}
Run Code Online (Sandbox Code Playgroud)
在我修改过的片段中onCreate, …
android android-fragments android-actionbar navigation-drawer
我有一个奇怪的问题.我正在使用targetsdk 13制作应用程序.
在我的主要活动的onCreate方法中,我打电话getActionBar()来设置我的操作栏.这在Android 3.2模拟器上运行时工作正常,但在使用Android 3.0和3.1时,该getActionBar()方法返回null.
我发现这非常奇怪,我看不出有什么理由会这样做.这是模拟器的错误还是我需要做的事情,以确保我的应用程序有一个操作栏?
解决方案:
我想我找到了解决这个问题的方法.我没有使用setContentView来设置活动的布局.相反,我正在使用fragmentTransaction.add(android.R.id.content, mFragment, mTag)向活动添加片段.这在3.2中运行良好,但在早期的蜂窝版本中,如果您不在方法中使用setContentView,则操作栏显然未设置onCreate().所以我通过setContentView()在我的方法中使用方法修复它,onCreate()并为它提供包含空FrameLayout的布局.我仍然可以fragmentTransaction.add(android.R.id.content, mFragment, mTag)像以前一样使用该方法.
这不是最漂亮的修复,但它确实有效.
我正在尝试显示Back button上Action bar移动上一页/活动或主页(第一次打开).我不能这样做.
我的代码.
ActionBar actionBar = getActionBar();
actionBar.setHomeButtonEnabled(true);
Run Code Online (Sandbox Code Playgroud)
代码在onCreate.
android ×10