Восстановить макет панели действий по умолчанию

Я применяю пользовательский View к ActionBar, как этот

// Inflate the "Done/Discard" custom ActionBar view.
LayoutInflater inflater = (LayoutInflater) DetailsHost.mActionBar
        .getThemedContext().getSystemService(DetailsHost.LAYOUT_INFLATER_SERVICE);
final View customActionBarView = inflater.inflate(
        R.layout.actionbar_custom_view_done_discard, null);

// Show the custom ActionBar view and hide the normal Home icon and title.
DetailsHost.mActionBar.setDisplayOptions(
        ActionBar.DISPLAY_SHOW_CUSTOM,
        ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME
                | ActionBar.DISPLAY_SHOW_TITLE);
DetailsHost.mActionBar.setCustomView(customActionBarView, 
        new ActionBar.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.MATCH_PARENT));

(на основе кода Roman Nuriks).

Как восстановить исходный макет? Примечание. Я использую ActionBarSherlock

Ответ 1

Показать/скрыть пользовательский вид панели действий

Поскольку вы только добавили пользовательский вид в панель без удаления заголовка, этого должно быть достаточно, чтобы скрыть этот пользовательский View. Вы можете использовать метод setDisplayShowCustomEnabled(). Просто позвоните:

getActivity().getActionBar().setDisplayShowCustomEnabled(false);

И снова включите домашнюю функциональность:

getActivity().getActionBar().setDisplayShowHomeEnabled(true);

(Обратите внимание, что во всех примерах кода используйте getSupportActionBar() вместо getActionBar(), если вы используете совместимость с программой. Кроме того, getActivity() требуется только от фрагментов, в действиях относятся к самой активности, в большинстве случаев this)

Восстановить заголовок панели действий

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

getActivity().getActionBar().setDisplayShowTitleEnabled(true);

Полностью восстановить полностью

Вы также можете вызвать метод setDisplayOptions() с комбинацией параметров для перенастройки панели действий в один вызов. В приведенном ниже примере удаляется пользовательский вид и отображается заголовок.

getActivity().getActionBar().setDisplayOptions(
    ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);

Подробнее об этих параметрах см. Android API docs.

Ответ 2

ActionBar actionbar;

actionbar = getActionBar();

Button cls = (Button)findViewById(R.id.btn_close);

cls.setOnClickListener(new OnClickListener(){           
    public void onClick(View view){
       actionbar.setDisplayShowCustomEnabled(false);                
   }            
});

Примечание:   Кнопка с идентификатором 'btn_close' была размещена в макете пользовательской панели действий. Эта функция была написана в mainactivity.

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