我正在创建一个包含 4 个主要部分的应用程序。我想要一种非常简单的导航方式,这意味着如果手机支持操作栏,那么我希望它显示一个选项卡式操作栏。否则显示菜单的常规菜单按钮很好。
问题在于,当在具有实际支持操作栏的 sdk 版本的手机上试用时,操作栏接缝无法管理或无法创建。
我正在使用 menu/menu.xml 文件来创建要显示的菜单和项目。然后,我使用带有 MenuInflater 的 onCreateOptionsMenu() 来填充每个 Activity 的菜单。这在所有手机上都可以正常工作,但在使用操作栏的手机上,我得到一个标题类型栏,最左边是应用程序图标,旁边是当前活动标题,然后在最右边是图标第一个菜单项后跟 3 个方块(当您单击它们时,会显示其余的菜单项)。无论我在哪个活动中,这种情况都保持不变。
我想要的是一个选项卡式操作栏,而不是显示图标和文本(如果有文本空间),并且用户正在查看的任何当前活动都在选项卡式操作栏中被“选中”。此处显示的相同方式:
http://developer.android.com/images/ui/actionbar.png(由于是新用户,我无法将其设为图像)
这是我正在使用的代码:
清单.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mypackage"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission
android:name="android.permission.INTERNET" />
<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission
android:name="android.permission.READ_PHONE_STATE" />
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo">
<uses-library android:name="com.google.android.maps" />
<activity
android:name=".ActivityLoad"
android:label="label">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
....more activities....
</application>
</manifest>
菜单.xml
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menuMap"
android:title="@string/A_MAP_TITLE"
android:icon="@drawable/nav_map"
android:showAsAction="ifRoom|withText">
</item>
<item
android:id="@+id/menuList"
android:title="@string/A_LIST_TITLE"
android:icon="@drawable/nav_list"
android:showAsAction="ifRoom|withText">
</item>
<item
android:id="@+id/menuMore"
android:title="@string/A_MORE_TITLE"
android:icon="@drawable/nav_more"
android:showAsAction="ifRoom|withText">
</item>
<item
android:id="@+id/menuReport"
android:title="@string/A_REPORT_TITLE"
android:icon="@drawable/nav_report"
android:showAsAction="ifRoom|withText">
</item>
</menu>
我的活动.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options, menu);
return super.onCreateOptionsMenu(menu);
}
我已经尝试在我的活动 onCreate() 方法中使用此代码设置操作栏导航模式,但所发生的只是一个空白操作栏显示在我默认获得的“坏”操作栏下方:
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
所有教程都只是说“使用样式”或其他内容,但我不知道在哪里放置样式 xml 文件或如何将其设置到我的菜单或我应该在这里实际做什么。如果有人可以提供帮助,将不胜感激!