恢复默认操作栏布局

时间:2012-12-14 19:35:55

标签: android android-layout android-actionbar actionbarsherlock

我将自定义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

2 个答案:

答案 0 :(得分:29)

显示/隐藏自定义操作栏视图

由于您只是在不删除标题的情况下向条形图添加了自定义视图,因此隐藏该自定义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

答案 1 :(得分: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'的按钮位于自定义操作栏布局中。此函数是在mainactivity中编写的。

希望这有助于!!