我有一个Activity作为Theme.Dialog运行。我可以将其标题设置为“椭圆”风格吗?目前,正在使用setText()将文本填充到onCreate()中。没有像TextView那样的this.setEllipsize()。我可以省略对话标题吗?
或者,是我唯一的选择a Custom Dialog并在那里设置标题样式?我想知道如果这是可能的,然后沿着这条道路前进。
我有一个Activity作为Theme.Dialog运行。我可以将其标题设置为“椭圆”风格吗?目前,正在使用setText()将文本填充到onCreate()中。没有像TextView那样的this.setEllipsize()。我可以省略对话标题吗?
或者,是我唯一的选择a Custom Dialog并在那里设置标题样式?我想知道如果这是可能的,然后沿着这条道路前进。
下面的代码帮你ellipsize TextView的...
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCustomTitle(GetDialogTitleView(this,R.string.TitleStr));
private static TextView GetDialogTitleView(Context mContext,int TitleResID)
{
TextView title = new TextView(mContext);
title.setText(TitleResID);
title.setBackgroundColor(Color.DKGRAY);
title.setPadding(5, 5, 5,5);
title.setGravity(Gravity.CENTER);
title.setTextColor(Color.WHITE);
TruncateAt ta = TruncateAt.MIDDLE;
title.setEllipsize(ta);
title.setTextSize(20);
return title;
}
清洁&容易,没有任何自定义视图:
TextView tv = (TextView) dialog.findViewById(android.R.id.title);
tv.setEllipsize(TextUtils.TruncateAt.END);
刚刚在运行Android 4.3的Nexus7上运行的应用程序中使用此代码。它的工作原理,但有时我会在对话标题中的省略号后找到一些字符。这很可能是[问题882](https://code.google.com/p/android/issues/detail?id=882)的另一种情况,#9有一个解决方法:'tv.setLines(1); tv.setHorizontalScrolling(true);'帮助我在这里。现在一切都像一个魅力。 – Nantoka 2013-08-18 13:54:01
你能否通过标题的对话框已经ellipsized? – 2010-08-04 14:57:05
当然,但我不得不做一些计算各种Android屏幕对话框的宽度,不是吗? 我计算屏幕可以显示的最大字符数,然后将最后3个字符椭圆化为点。 – GJTorikian 2010-08-04 22:04:41