在ActionBar字幕上覆盖android:ellipsize
-
28-10-2019 - |
题
我的活动使用ActionBar.setSubtitle
函数来显示当前显示的文件系统位置的完整路径。这意味着字幕结尾处的子字符串比开头更相关,所以我认为我应该重写ActionBar
样式,以在开头而不是结尾省略文字,如下所示:
res / values / themes.xml 通用标签
res / values / styles.xml 通用标签
当我将其安装到ICS设备(Nexus S)上时,最后的文本仍然(不正确)为椭圆形。如果我修改了TextAppearance.Holo.Widget.ActionBar.Subtitle
的版本,使其包含android:textSize
的项目,那么字幕的文本大小会相应地发生变化,因此好像我在拨弄正确的样式。我只是想不出为什么它不尊重我的基因编码标签覆盖。
将所有内容都转换为问题格式:如何使用样式/主题覆盖android:ellipsize
中字幕视图的android:ellipsize
属性?
解决方案
在我看来,主题和样式是不可能的,但是我找到了一种在运行时设置ellipsize值的解决方法。
最困难的是找到标题(或字幕)TextView,因为此视图的ID在内部android程序包中。
因此您需要在项目中创建存根类 通用标签
之后,您需要在代码中找到该视图(我使用以下代码来完成此操作,它既适用于夏洛克,也适用于默认操作栏) 通用标签
现在您可以在活动代码中设置椭圆尺寸值: 通用标签
PS: 确保在标题可见时(在setDisplayShowTitleEnabled(true)调用之后)调用getActionBarTitle,否则将获得NullPointerException。
PPS: 如果使用proguard混淆,则应添加proguard.cfg: 通用标签