我设置了操作栏的背景,但在分割模式下,背景不起作用。
我知道我必须设置这个:
<item name="android:backgroundSplit">@drawable/some_drowable</item>
但它在Api等级11中不起作用
还有其他办法吗?
我还有关于操作栏样式的另一个问题,我想在按下时更改操作栏图标颜色(不是背景区域,而是替换图标)。我怎么能这样做?
答案 0 :(得分:0)
第一,我不知道该怎么做。但第二,我可以帮助你。这根本不困难。
基本上,操作栏只是一个条形图,其中包含您在菜单按钮下设置的任何菜单选项。
因此,它是在应用程序启动时通过调用
创建的@Override
public boolean onCreateOptionsMenu(Menu menu) {
...
}
任何选定的选项都会导致
@Override
public boolean onOptionItemSelected(MenuItem item) {
...
}
使用用户选择的菜单项调用。
但是,还有第三种方法与选项菜单相关,选项菜单是您要用来更新操作的选项。它被称为onPrepareOptionsMenu(Menu menu)
(link)。在此方法中,允许更改使用onCreateOptionsMenu(...)
创建的菜单。
因此,有了这些知识,您可以通过调用onOptionsItemSelected(...)
来检查在操作栏中点击了哪个操作,从而为item.getItemId()
中的特定项目保留(全局)状态。
现在,您将了解操作栏上的操作以及您希望它处于的状态。
但是等一下,应用程序启动时已经创建了操作栏。那么你如何重新创造呢?实际上很简单。您只需要拨打invalidateOptionsMenu()
(link)即可使其无效。这会导致Android重绘操作栏,并导致整行onCreateOptionsMenu(...)
- &gt; onPrepareOptionsMenu(...)
再次被召唤。
所以现在你拥有了所需的一切:
onOptionsItemSelected(...)
重绘操作栏时,您可以更改操作栏上项目的图标,使其更新为您希望的状态。