10

我有一个标题相当长的应用程序(例如我的长标题应用程序)。我正在使用 ActionBar 并注意到应用程序标题不断被截断(例如 My Long Title A...)。即使显示了 2 个操作栏项目(均标记为“ifRoom”),也会发生这种情况。

有谁知道是否有办法确保活动标题宽度优先于“ifRoom”操作栏项目(即确保我的标题完整显示,如果需要更多空间,操作栏项目将移动到下拉菜单)?

非常感谢人们。

4

4 回答 4

9

我在操作栏标题很短时遇到了这个问题。即使使用 5-6 个字符串,操作栏标题也会被省略号截断。

如果您有一个短标题(例如“Shop”),然后ActionBar.setTitle(<inputString or resId>)在输入字符串比前一个标题长的地方调用TextView,即使ActionBar有足够的空间,也不会调整自身大小以提供新标题空间。

之前(短标题)

短标题,之前

// now call setTitle() with a longer title
ActionBar actionBar = getActionBar();
actionBar.setTitle("Collin");

之后(短标题)

更长的标题,之后

解决方案

继续setTitle()通话onCreateOptionsMenu()

结果:

在此处输入图像描述

于 2014-09-07T00:30:21.967 回答
5

当最后一个标题小于新标题时会导致此错误,因此诀窍是使最后一个标题始终比新 setTitle 长。

即使在Google 问题跟踪器中也没有解决方案,问题状态现在已过时。

更新:(解决方法)

getSupportActionBar().setTitle("");

getSupportActionBar().setTitle(title);
于 2015-08-05T05:32:25.067 回答
1

不幸的是,没有办法防止操作栏标题被截断。但是,您确实可以选择一些选项来释放操作栏中的一些空间。您可以:

  1. 强制您的操作项进入溢出菜单。如果您使用的是最新的 ActionBarSherlock(4.2.0),则执行此操作要困难得多。使用 4.2.0 时,请参阅此答案以了解解决方法。如果您觉得不需要最新版本,可以使用 ABS 4.1.0。在 4.1.0 上,您只需将活动主题设置为@style/Theme.Sherlock.ForceOverflow. 请注意,不建议强制使用溢出菜单,因为它会在应用程序之间提供不一致的导航。
  2. 您可以使用拆分操作栏并强制操作项进入底部操作栏。在这里查看 CommonsWare 的答案。有关拆分操作栏的信息,请参见此处。
于 2013-03-22T18:09:27.603 回答
0

我不确定是否有一种简单的方法,但有多种解决方法。

1)您可以强制酒吧到达底部并节省空间:

如何强制操作栏位于 ICS 的底部?

http://developer.android.com/guide/topics/manifest/application-element.html

2)使用自定义字体设置标题: https ://stackoverflow.com/a/8748802/1276103

3)您可以将标题设置为两行: https ://stackoverflow.com/a/18867068/1276103

于 2014-01-14T16:56:05.653 回答