我遇到一个问题,如果ActionItem
同时包含图标和文字并且ActionBar
被拆分,那么即使showAsAction="always|withText"
也只显示图标。
有没有办法强制显示文字?
答案 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>
希望这有帮助