Как добавить действия в верхнюю часть разделенного ActionBar - PullRequest
11 голосов
/ 31 января 2012

Если Android ActionBar разделен на верхнюю и нижнюю части, используя android:uiOptions="splitActionBarWhenNarrow" в Manifext.xml, есть ли способ заставить некоторые действия отображаться в верхней части вместо того, чтобы все они были внизу?

Ответы [ 3 ]

1 голос
/ 08 мая 2013

Да! Вы можете продолжать использовать android:uiOptions="splitActionBarWhenNarrow" в вашем Manifest.xml.

Вам также нужно установить:

// set the actionbar to use the custom view
getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);

//set the custom view to use
getActionBar().setCustomView(R.layout.custom_action_bar_top);

Где R.layout.custom_action_bar_top будет видом, в котором есть все кнопки, которые вы хотите отображать на верхней панели действий.

Все пункты меню, которые вы хотите внизу, должны быть добавлены как обычно в методе onCreateOptionsMenu вашей деятельности.

1 голос
/ 12 июля 2014

Я хотел бы поддержать решение Дилана Уотсона, но с одним улучшением. Для тех, кто хотел бы сохранить заголовок и не заменять весь actionBar своим новым представлением, они используют getActionBar().setDisplayShowCustomEnabled(true), а не getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);, так как последнее заставит новое представление быть единственным представлением, отображаемым на панели действий. , Мой код:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView = new SearchView(this);
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
    getActionBar().setDisplayShowCustomEnabled(true);
    getActionBar().setCustomView(searchView, new ActionBar.LayoutParams(Gravity.RIGHT));
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
1 голос
/ 27 апреля 2013

Нет стандартного способа сделать это.Тем не менее, пользовательское представление Action Bar появится в верхней панели, так что вы можете просто использовать это.Вы потеряете некоторые дополнения (тосты при долгом нажатии), поэтому вам придется их реализовать самостоятельно.Тем не менее, если вы используете ActionBarSherlock, все макеты и стили для обычной кнопки есть, так что вы можете просто использовать их.

...