如何显示android动作栏标题而不发生截断

Cha*_*man 9 android truncate title actionbarsherlock android-actionbar

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

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

非常感谢人们.

Col*_*ynn 9

我用非常短的动作栏标题来解决这个问题.即使使用5-6个字符串,操作栏标题也会被省略.

如果你有一个简短的标题(比如"商店"),那么ActionBar.setTitle(<inputString or resId>)在输入字符串长于前一个标题的地方打电话TextView,即使ActionBar有足够的空间,也不会调整自己的大小来给你的新标题空间.

之前(ShortTitle)

简称,之前

// now call setTitle() with a longer title
ActionBar actionBar = getActionBar();
actionBar.setTitle("Collin");
Run Code Online (Sandbox Code Playgroud)

之后(ShortTitle)

更长的头衔,之后

移动你的setTitle()电话onCreateOptionsMenu()

结果:

在此输入图像描述


小智 5

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

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

更新:(解决方法)

getSupportActionBar().setTitle("");

getSupportActionBar().setTitle(title);
Run Code Online (Sandbox Code Playgroud)


Jus*_*ian 1

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

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