拆分ActionBar中的withText

时间:2011-12-05 04:32:31

标签: android android-actionbar

我遇到一个问题,如果ActionItem同时包含图标和文字并且ActionBar被拆分,那么即使showAsAction="always|withText"也只显示图标。

有没有办法强制显示文字?

2 个答案:

答案 0 :(得分:4)

withText是对系统的暗示。在宽度受限的设备或配置上,系统可以选择忽略它。

答案 1 :(得分:2)

我最近遇到了同样的问题,并且adamp已经回答过,因此无法强制文本显示“withText”选项。

实际上,这可以通过操作栏中的自定义视图来完成,例如在Google日历的编辑/创建事件屏幕中(操作栏中的取消和保存按钮,都带有文本)。

查看Google日历来源,了解其完成方式

https://android.googlesource.com/platform/packages/apps/Calendar

中有一个Actionbar自定义视图的布局

RES /布局/ edit_event_custom_actionbar.xml

还请检查相关的样式

这适用于EditEventFragment类中的Actionbar,方法onCreateView

if (mUseCustomActionBar) {
     View actionBarButtons = inflater.inflate(R.layout.edit_event_custom_actionbar,
             new LinearLayout(mContext), false);
     View cancelActionView = actionBarButtons.findViewById(R.id.action_cancel);
     cancelActionView.setOnClickListener(mActionBarListener);
     View doneActionView = actionBarButtons.findViewById(R.id.action_done);
     doneActionView.setOnClickListener(mActionBarListener);

     mContext.getActionBar().setCustomView(actionBarButtons);
 }

事件处理程序也在那里分配。

Actionbar显示选项在EditEventActivity类中设置onCreate方法:

getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,                      
         ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_HOME|
         ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_CUSTOM);

这是我到目前为止所知道的。其他屏幕选项(平板电脑)有一些额外的配置,使用操作栏的标准菜单配置,但在我自己的代码中使用类似的布局,样式和这两个片段,产生了预期的结果(带有文本的操作栏项目)。 p>

希望这有帮助