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

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

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

非常感谢人们。

遗憾的是,没有办法阻止截断操作栏标题。 但是,您可以选择在操作栏中释放一些空间..您可以:

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

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

如果你有一个简短的标题(例如,“Shop”),然后调用ActionBar.setTitle() ,其中输入字符串比前一个标题长, TextView将不会调整自身大小以给你新的标题空间,即使ActionBar有足够的空间。

之前(ShortTitle)

简称,之前

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

之后(ShortTitle)

更长的头衔,之后

onCreateOptionsMenu()上移动你的setTitle()调用

结果:

在此处输入图像描述

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

即使在Google Issue Tracker中也没有解决方案,问题现在已经过时了

更新:(解决方法)

getSupportActionBar()的setTitle( “”)。

getSupportActionBar()的setTitle(标题)。

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

1)您可以强制栏到底并节省空间:

如何强制Action Bar位于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