Android 恢复默认操作栏布局

Android 恢复默认操作栏布局,android,android-layout,android-actionbar,actionbarsherlock,Android,Android Layout,Android Actionbar,Actionbarsherlock,我将自定义的视图应用于操作栏,如下所示 // Inflate the "Done/Discard" custom ActionBar view. LayoutInflater inflater = (LayoutInflater) DetailsHost.mActionBar .getThemedContext().getSystemService(DetailsHost.LAYOUT_INFLATER_SERVICE); final View customActionBarVi

我将自定义的
视图
应用于
操作栏
,如下所示

// 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));
(基于罗马努里克斯法典)

如何恢复初始布局?注意:我使用ActionBarSherlock显示/隐藏自定义actionbar视图 由于只向栏中添加了自定义视图,而没有删除标题,因此隐藏该自定义视图就足够了。您可以使用方法
setDisplayShowCustomEnabled()
。只要打电话:

getActivity().getActionBar().setDisplayShowCustomEnabled(false);
并再次启用主页功能:

getActivity().getActionBar().setDisplayShowHomeEnabled(true);
(注意,在所有代码示例中,如果使用actionbar compat,请使用
getSupportActionBar()
而不是
getActionBar()
。此外,
getActivity()
仅从片段中需要,在活动中指的是活动本身,在大多数情况下
this

还原操作栏标题 但是,如果在创建自定义视图时也删除了标题,则还必须再次启用该功能

getActivity().getActionBar().setDisplayShowTitleEnabled(true);
完全恢复 您还可以使用选项组合调用setDisplayOptions()方法,以便在一次调用中重新配置actionbar。下面的示例删除自定义视图并显示标题

getActivity().getActionBar().setDisplayOptions(
    ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);
有关这些选项的更多详细信息,请参阅

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”的按钮位于自定义操作栏布局中。此函数是在mainactivity中编写的


希望这有帮助

这让标题和图标消失。有没有办法把它们弄回来<代码>mActionBar.setTitle()不起作用。
DetailsHost.mActionBar.setDisplayShowTitleEnabled(true)
DetailsHost.mActionBar.setDisplayShowHomeEnabled(真)再次启用它们。是的,这将起作用。此外,您还可以使用
DetailsHost.mActionBar.setDisplayOptions(ActionBar.DISPLAY\u SHOW\u HOME | ActionBar.DISPLAY\u SHOW\u TITLE)而不是调用这三个方法。在我的例子中,它是
DetailsHost.mActionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_HOME_AS_UP),我还需要启用向上按钮。非常感谢你的帮助。是的,对。我更新了答案以包含缺失的部分。