如何创建自定义 ActionBar?
Posted
技术标签:
【中文标题】如何创建自定义 ActionBar?【英文标题】:How can I create a custom ActionBar? 【发布时间】:2014-03-04 15:36:25 【问题描述】:我正在尝试使用 setCustomView 创建自定义 ActionBar,但是当应用程序加载时,默认 ActionBar 会在自定义视图之前加载,并且选项(菜单项)会自动添加到操作栏中。
我需要像这样创建一个 ActionBar:https://play.google.com/store/apps/details?id=com.homes.rentals
我该怎么做?
更新:
我正在使用 ActionBar AppCompat 支持库。
【问题讨论】:
也许您可以为默认操作栏编写自己的样式? 据我所知和搜索,没有样式选项可以将操作栏标题居中、删除图标等。 【参考方案1】:那么你如何制作自定义布局 xml,你希望它看起来像什么,然后是这样的:
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
LayoutInflater inflator = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflator.inflate(R.layout.custom_action_bar, null);
actionBar.setCustomView(v);
编辑:
要从 ActionBar 中删除您的图标,在 Java 中,请在您的 ActionBar 上调用 setDisplayShowHomeEnabled(false)
和 setDisplayShowTitleEnabled(false)
。
【讨论】:
这样做和这样做有区别吗? ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); actionBar.setCustomView(R.layout.actionbar); 它应该是一样的,但你可以测试它:) 实际上,这两种代码都可以工作,但是 android 在加载自定义操作栏之前会显示默认操作栏。【参考方案2】:使用支持非常低的API
的SherlockActionBar
库,从API-7
开始。该库允许您添加 customActionBar UI 图标并处理其操作。
从此link下载SherlockActionBar
并使用这个简单的tutorial 知道如何使用它。
【讨论】:
我正在使用 AppCompat 支持库。 试试Sharlock
,使用和集成更简单。以上是关于如何创建自定义 ActionBar?的主要内容,如果未能解决你的问题,请参考以下文章