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)代码>,我还需要启用向上按钮。非常感谢你的帮助。是的,对。我更新了答案以包含缺失的部分。