Размещение моего ActionBar внизу

Я последовал за учебным пособием по сбору действий в моем приложении. Но даже когда я android:uiOptions="splitActionBarWhenNarrow" в моем файле манифеста, он все еще держит его наверху. У кого-нибудь есть идеи о том, что делать с этим кодом?

XML:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#f0f0f0" android:baselineAligned="false"> <LinearLayout android:id="@+id/myFragments" android:layout_width="match_parent" android:layout_height="0dp"> </LinearLayout> </LinearLayout> 

Файл манифеста:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.alotoftesting" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="15" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/title_activity_main" android:uiOptions="splitActionBarWhenNarrow"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 

Панель действий Google по умолчанию ни в коем случае не отображается внизу. Как уже упоминалось, другие отметили, что splitActionBarWhenNarrow помещает поднабор вашего ActionBar (например, вкладки и т. Д.) В нижней части экрана, когда устройство узкое. К сожалению, если вы хотите реализовать интерфейс ActionBar в нижней части экрана, вам придется его реализовать самостоятельно ( быстрый поиск находит этот пример ), так как я не видел никаких библиотек для этого.

В общем, я бы рекомендовал против этого, так как он нарушает принцип дизайна бесшовности в проектных документах, нарушая ожидания пользователей того, где будут действовать элементы управления ActionBar. Пользователь android идеально подходит для выполнения определенных действий, и вы Нужна довольно веская причина, чтобы прервать это ожидание.

Согласно этому комментарию:

Сколько пунктов меню у вас в ActionBar? Параметр splitActionBarWhenNarrow в основном позволяет перетекать во вторую, «разделенную» панель действий внизу, если ваши пункты меню не будут располагаться вверху. Если все ваши пункты меню подходят вверху, вы не увидите разделенный макет.

Если вы хотите иметь пользовательскую нижнюю панель инструментов, пожалуйста, проверьте мой ответ на этот вопрос (добавлено ниже):

Создание пользовательской нижней панели инструментов

Я уже создал простое приложение, которое должно продемонстрировать вам, как начать

Создание пользовательской ViewGroup

Вот мой макет файла activity_main.xml :

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="0dp" tools:context="com.example.piotr.myapplication.MainActivity"> <LinearLayout android:id="@+id/show_pdf" android:layout_width="match_parent" android:layout_height="40dp" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:background="@color/primary_material_light" android:orientation="horizontal"> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/abc_ic_menu_cut_mtrl_alpha"/> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/abc_ic_menu_copy_mtrl_am_alpha"/> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/abc_ic_menu_selectall_mtrl_alpha"/> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/abc_ic_menu_paste_mtrl_am_alpha"/> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/abc_ic_menu_share_mtrl_alpha"/> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/abc_ic_menu_selectall_mtrl_alpha"/> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/abc_ic_menu_moreoverflow_mtrl_alpha"/> </LinearLayout> <EditText android:id="@+id/editText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="75dp" android:ems="10" android:inputType="textPersonName" android:text="Name"/> </RelativeLayout> 

Поскольку вы можете видеть, что моя родительская ViewGroupRelativeLayout , которая просто позволяет мне создать представление внизу экрана.

Обратите внимание, что я установил отладку макета до нуля (я думаю: установка разметки макета на ноль здесь не требуется, тот же эффект). Если вы измените его, панель инструментов не будет использовать полную ширину, и она не будет придерживаться нижней части экрана.

Затем я добавил линейную компоновку с жестко запрограммированной высотой, которая:

  android:layout_height="40dp" 

Я хотел, чтобы моя нижняя панель инструментов имела полную доступную ширину, поэтому я установил ее как match_parent .

Затем я добавил несколько изображений ImageButton с изображениями из библиотеки Android.

Там у вас есть две возможности:

  • Если вы действительно хотите иметь панель инструментов, как в приведенном выше примере, просто удалите в каждом ImageButton эту строку:

      android:layout_weight="1" 

После удаления весов и некоторых кнопок вы получите представление, похожее на ожидаемое:

  • Если вы хотите взять полную ширину и сделать каждую кнопку с одинаковым размером, используя weight вашего проекта, как в этом примере шахты.

Теперь перейдем к моему AndroidManifest.xml

 <?xml version="1.0" encoding="utf-8"?> <manifest package="com.example.piotr.myapplication" xmlns:android="http://schemas.android.com/apk/res/android"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:windowSoftInputMode="stateVisible|adjustResize"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest> 

В этом файле я добавил, поскольку вы можете увидеть только одну дополнительную строку:

  android:windowSoftInputMode="stateVisible|adjustResize"> 

Чтобы клавиатура устройства не скрывала мою пользовательскую нижнюю панель инструментов.

От: Как добавить нижнее меню в Android-активность

Я думаю, что таким образом вы также можете поместить вкладки внизу, если это необходимо.

Если у вас есть какие-либо вопросы, не стесняйтесь спрашивать.

Надеюсь, что это поможет