无法让Android 4.0 Split Action Bar正常工作

时间:2011-12-07 13:39:52

标签: android android-actionbar android-4.0-ice-cream-sandwich

我已经关注了Android开发网站上的开发页面,但我无法将操作栏拆分为屏幕的顶部和底部。

我有一个菜单xml定义了几个选项:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:id="@+id/stop_services"
    android:icon="@drawable/ic_launcher"
    android:title="@string/stop" 
    android:showAsAction="ifRoom|withText"/>
  <item android:id="@+id/start_services"
    android:icon="@drawable/pushpin"
    android:title="@string/start" 
    android:showAsAction="ifRoom|withText"/>
</menu>

在我的清单中,我将uiOption设置为:

<activity
  android:label="@string/app_name"
  android:name=".ProxilenceHome" 
  uiOptions="splitActionBarWhenNarrow" >

我按如下方式加载活动中的菜单项:

public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.home_menu, menu);
    return true;
}

但是在测试应用程序时,操作栏永远不会分裂。有没有人知道这个问题/我是否错过了什么?

非常感谢。

3 个答案:

答案 0 :(得分:26)

使用android:uiOptions="splitActionBarWhenNarrow"对我有用。

没有“android:”它不起作用

答案 1 :(得分:0)

在横向模式导航标签中使用此功能,但在纵向模式下无效。

    final ActionBar bar = this.getActionBar();
        bar.setDisplayHomeAsUpEnabled(false);
bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);
        bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);




mTabsAdapter = new TabsAdapter(this, mViewPager);
    Tab tab1=mTabsAdapter.addTab(bar.newTab().setText("DemoGraphics"),ListFragmentDemo.PatientFragment.class, null);

public boolean onCreateOptionsMenu(Menu menu)
    {

        MenuInflater inflater=getMenuInflater();
        inflater.inflate(R.menu.mainmenu, menu);
        super.onCreateOptionsMenu(menu); 

        return true;
    }

mainmenu.xml

    <menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_dCollection"
         android:icon="@drawable/overflowmenu"
         android:showAsAction="ifRoom|withText"
    >
     <menu>
     <item android:id="@+id/menu_demo"

           android:title="DemoGraphics" />
     <item android:id="@+id/menu_visits"  
           android:title="Visits" />
     <item android:id="@+id/menu_vitals"  
           android:title="Vitals" />
     </menu>
    </item>
     <item android:id="@+id/add" android:showAsAction="ifRoom" android:title="Add" android:icon="@drawable/ic_action_open"></item>
     <item android:id="@+id/previous" android:showAsAction="ifRoom" android:title="Back" android:icon="@drawable/back"></item>
        <item android:id="@+id/nextFragment" android:showAsAction="ifRoom" android:title="Next" android:icon="@drawable/next"></item>
     <item android:id="@+id/menu_search" android:showAsAction="ifRoom" android:title="Search" android:actionViewClass="android.widget.SearchView" android:icon="@drawable/search" />
 </menu>
文件中的

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:installLocation="preferExternal"
    package="savy.exam.actionbartabspager"
    android:versionCode="1"
    android:versionName="1.0"
    android:uiOptions="splitActionBarWhenNarrow"
     >

答案 2 :(得分:0)

尝试在菜单xml中添加此行:

<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myapp="http://schemas.android.com/apk/res-auto" >

然后在你的item元素中:

myapp:showAsAction="always|withText"

它帮助了我。