我设置了我的动作栏的背景,但在分割模式下背景不起作用。android动作栏样式(按下分割样式和菜单项)
我知道我必须设置这样的:
<item name="android:backgroundSplit">@drawable/some_drowable</item>
但它不会在API级别工作11
是否有任何其他方式做到这一点?
我有行动酒吧风格另外一个问题,我想,当它被按下改变操作栏图标的颜色(不包括后台区域,但替换图标)。我怎样才能做到这一点 ?
我设置了我的动作栏的背景,但在分割模式下背景不起作用。android动作栏样式(按下分割样式和菜单项)
我知道我必须设置这样的:
<item name="android:backgroundSplit">@drawable/some_drowable</item>
但它不会在API级别工作11
是否有任何其他方式做到这一点?
我有行动酒吧风格另外一个问题,我想,当它被按下改变操作栏图标的颜色(不包括后台区域,但替换图标)。我怎样才能做到这一点 ?
首先,我不知道该怎么做。但第二,我可以帮助你。这并不难。
基本上,操作栏仅仅是一个与你否则将菜单按钮下方设置任何菜单选项栏。
因此,它是在与呼叫您的应用程序的启动创建
@Override
public boolean onCreateOptionsMenu(Menu menu) {
...
}
而且任何选择的选项将导致
@Override
public boolean onOptionItemSelected(MenuItem item) {
...
}
被调用,与菜单项的用户选择。
但是,这涉及到的选项菜单,这是您要使用更新操作的一个的第三种方法。它被称为onPrepareOptionsMenu(Menu menu)
(link)。在此方法中,允许更改使用onCreateOptionsMenu(...)
创建的菜单。
因此,通过这些知识,您可以通过调用item.getItemId()
来检查在动作栏中点击哪个动作,从而保持onOptionsItemSelected(...)
中特定项目的(全局)状态。现在
,你将有你希望它是在其中的作用是在操作栏上轻敲知识,和国家。
别急,当应用程序启动已经创建了操作栏。那么如何让它重新创建呢?其实很简单。您只需致电invalidateOptionsMenu()
(link)即可使其无效。这会导致Android重新绘制操作栏,并导致整个行onCreateOptionsMenu(...)
→onPrepareOptionsMenu(...)
再次被调用。
所以,现在你有你需要的一切:
onOptionsItemSelected(...)
当正在重绘操作栏,您可以更改操作栏上的项目的图标,以便将更新到你希望它是国家。
检查值,值-11,值-14文件夹相同样式appllied? –
谢谢,我现在可以为api 14设置背景分割,并且可以工作! 用户使用应用程序与API <14查看不同的背景,这不是一个问题。 – tulkas85
不用客气 –