【发布时间】:2012-06-02 11:44:57
【问题描述】:
我有一个 Activity,它的标题不断变化,但有时它很长,最后会变成省略号。我可以将椭圆设置为中间吗?
【问题讨论】:
我有一个 Activity,它的标题不断变化,但有时它很长,最后会变成省略号。我可以将椭圆设置为中间吗?
【问题讨论】:
你可以这样做:
final int actionBarTitle = Resources.getSystem().getIdentifier("action_bar_title", "id", "android");
final TextView title = (TextView)getWindow().findViewById(actionBarTitle);
if ( title != null ) {
title.setEllipsize(TextUtils.TruncateAt.MIDDLE);
}
【讨论】:
((TextView) ((FrameLayout) ((LinearLayout) ((ViewGroup) getWindow()
.getDecorView()).getChildAt(0)).getChildAt(0)).getChildAt(0))
.setEllipsize(TextUtils.TruncateAt.MIDDLE);
【讨论】:
如果您使用工具栏,您可以在 settitle 之前添加此功能
private void setToolbarTextEllipsizeInMiddle(Toolbar toolbar){
try {
toolbar.setTitle("'");
for (int i = 0; i < toolbar.getChildCount(); i++) {
View view = toolbar.getChildAt(i);
if (view instanceof TextView) {
TextView tv = (TextView) view;
tv.setEllipsize(TextUtils.TruncateAt.MIDDLE);
}
}//end for i
toolbar.setTitle("");
} catch (Exception e) {
}
}
【讨论】:
尝试使用android:ellipsize
请参阅 Android 开发者页面中的 android:ellipsize 。
【讨论】: