Я создаю приложение, которое имеет 4 основных раздела. Я хотел бы иметь очень простой способ сделать навигацию, которая будет означать, если телефон поддерживает панель действий, тогда я бы хотел, чтобы она отображала панель действий с вкладками. В противном случае обычная кнопка меню, показывающая меню, прекрасна.Меню Android для панели действий с вкладками
Проблема заключается в том, что штанга панели действий не управляема или не создана при попытке ее использования на телефонах с версией sdk, которая фактически поддерживает панели действий.
Я использую файл menu/menu.xml для создания меню и элементов, которые я хочу отобразить. Затем я использую onCreateOptionsMenu() с MenuInflater для заполнения меню для каждого действия. Это отлично работает на всех телефонах, но на телефонах, которые используют панель действий, я получаю панель заголовка с иконкой приложения слева от нее, текущим названием Activity рядом с ним, а затем в правом углу находится значок для первого пункта меню, за которым следуют 3 квадрата (которые, когда вы нажимаете на них, показывают остальные пункты меню). Эта ситуация остается неизменной независимо от активности, в которой я участвую.
Что я хочу - это панель действий с вкладками, чтобы отображать вместо нее значок и текст (если есть место для текста) и иметь любую текущую активность пользователь просматривает «выбранный» в панели вкладок. Так же, как показано здесь:
http://developer.android.com/images/ui/actionbar.png (я не могу сделать это изображение из-за того, чтобы быть новым пользователем)
Вот код, я использую:
manifest.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>
menu.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>
MyActivity.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 стиль или как установить это в моем меню или что я должен делать здесь. Если бы кто-то мог помочь, это было бы очень признательно!