Android Split Action Bar с элементами действий сверху и снизу?
Есть ли способ указать некоторые элементы действий в верхней части панели действий "Разделение", а другие - в нижнюю? Или это все или ничего, при котором все элементы действий переходят только в нижнюю часть разделения?
5 ответов
В настоящее время это невозможно.
Смотрите ответ непосредственно от разработчиков Android Рето Майера и Романа Нурика в часы работы офиса разработчиков Android: http://youtu.be/pBmRCBP56-Q?t=55m50s
Чтобы решить эту проблему, я использовал пользовательское представление в качестве панели действий:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ActionBar actionBar = getActionBar();
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
View view = View.inflate(getApplicationContext(), R.layout.actionbar,
null);
actionBar.setCustomView(view);
}
а затем для нижней панели я надувал мой вид меню или все, что вы хотите, чтобы появилось внизу:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.browser_main, menu);
RelativeLayout relativeLayout = (RelativeLayout) menu.findItem(
R.id.layout_item).getActionView();
View inflatedView = getLayoutInflater().inflate(
R.layout.media_bottombar, null);
relativeLayout.addView(inflatedView);
return true;
}
В Манифест Android я также включаю (android:uiOptions="splitActionBarWhenNarrow") вот так:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:uiOptions="splitActionBarWhenNarrow" > ....
Я решил эту проблему, используя CustomView и добавляя пункты меню, которые должны отображаться вверху, к этому представлению.
Если эта опция активирована, Android имеет возможность разделить панель действий. Будет ли разделяться, решается системой во время выполнения
Вы можете определить, что панель действий должна автоматически разделяться системой, если недостаточно свободного места. Вы можете активировать это с помощью параметра android:uiOptions="SplitActionBarWhenNarrow" в объявлении активности вашего приложения в файле AndroidManifest.xml.
Сомнительно. Однако вы можете выбрать комбинацию из них при создании элементов меню на панели действий для экспериментов.
MenuItem.SHOW_AS_ACTION_ALWAYS
MenuItem.SHOW_AS_ACTION_NEVER
MenuItem.SHOW_IF_ROOM