恢复默认动作条布局(Restore default actionbar layout)

2019-08-04 03:00发布

我应用自定义ViewActionBar ,这样

// 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));

(罗曼Nuriks基于代码)。

如何恢复初始布局? 注:我用ActionBarSherlock

Answer 1:

显示/隐藏自定义动作条视图

既然你只加了一个自定义视图栏不删除标题应该是足以隐藏的自定义View 。 您可以使用方法setDisplayShowCustomEnabled() 只要致电:

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

并再次启用回家功能:

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

(注意:在所有的代码示例使用getSupportActionBar()代替getActionBar()如果您使用的动作条compat的。另外, getActivity()只从片段需要,在活动是指活动本身,在大多数情况下, this

还原动作条标题

然而,如果您创建自定义视图时也去掉了冠军,你必须启用再还。

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

完全恢复

您也可以拨打setDisplayOptions()方法的选项的组合重新配置动作条中的一个电话。 下面的示例中删除自定义视图,并显示标题。

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

见Android的API文档有关这些选项的详细信息。



Answer 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);                
   }            
});

注:ID按钮“btn_close”位于自定义动作条layout.This功能写在mainactivity。

希望这可以帮助!!



文章来源: Restore default actionbar layout