我有一個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