Я хотел бы иметь панель меню в верхней части моего приложения - так же, как Facebook, Google+ или Twitter:
Вот скриншот из приложения Twitter, в котором показан этот бар: он отображается в каждом действии и имеет логотип компании слева (с возможностью клика) и 1-3 пункта меню (с возможностью обращения) справа.
Это также можно увидеть в приложении GDCatalog:
Итак, для этой панели действий есть несколько требований:
- Он также должен работать на старых платформах Android, таких как API уровня 8.
- Он должен быть доступен в каждом действии, не повторяя код снова и снова.
- Он должен адаптироваться к размеру экрана так, чтобы он занимал всю ширину.
Какая наилучшая практика для реализации такой панели действий?
GreenDroid делает это так (используя слияния):
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright (C) 2010 Cyril Mottier (http://www.cyrilmottier.com)
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->
<merge
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageButton
xmlns:android="http://schemas.android.com/apk/res/android"
style="?attr/gdActionBarItemStyle"
android:id="@+id/gd_action_bar_item"
android:layout_height="fill_parent"
android:scaleType="center" />
<ImageView
android:layout_width="?attr/gdActionBarDividerWidth"
android:layout_height="fill_parent"
android:background="?attr/gdActionBarDividerDrawable" />
<TextView
style="?attr/gdActionBarTitleStyle"
android:id="@+id/gd_action_bar_title"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="left|center_vertical"
android:singleLine="true"
android:textColor="?attr/gdActionBarTitleColor"
android:textSize="16sp"
android:textStyle="bold"
android:paddingRight="10dp"
android:paddingLeft="10dp" />
</merge>
Это хорошее решение? Будет ли он работать и на старых платформах? Какие кодирующие части по-прежнему отсутствуют здесь?
Я знаю, что здесь мы можем найти несколько вопросов об этих барах. Но, тем не менее, я не мог узнать, какой лучший и простой способ реализовать панель меню, работающую через (почти) все уровни API. Является Google, возможно, лучше?
Большое спасибо!