2010-08-04 67 views
2

我有一個Activity作爲Theme.Dialog運行。我可以將其標題設置爲「橢圓」風格嗎?目前,正在使用setText()將文本填充到onCreate()中。沒有像TextView那樣的this.setEllipsize()。我可以省略對話標題嗎?

或者,是我唯一的選擇a Custom Dialog並在那裏設置標題樣式?我想知道如果這是可能的,然後沿着這條道路前進。

+0

你能否通過標題的對話框已經ellipsized? – 2010-08-04 14:57:05

+0

當然,但我不得不做一些計算各種Android屏幕對話框的寬度,不是嗎? 我計算屏幕可以顯示的最大字符數,然後將最後3個字符橢圓化爲點。 – GJTorikian 2010-08-04 22:04:41

回答

1

下面的代碼幫你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; 
    } 
4

清潔&容易,沒有任何自定義視圖:

TextView tv = (TextView) dialog.findViewById(android.R.id.title); 
tv.setEllipsize(TextUtils.TruncateAt.END); 
+1

剛剛在運行Android 4.3的Nexus7上運行的應用程序中使用此代碼。它的工作原理,但有時我會在對話標題中的省略號後找到一些字符。這很可能是[問題882](https://code.google.com/p/android/issues/detail?id=882)的另一種情況,#9有一個解決方法:'tv.setLines(1); tv.setHorizo​​ntalScrolling(true);'幫助我在這裏。現在一切都像一個魅力。 – Nantoka 2013-08-18 13:54:01

相關問題