2012-01-30 70 views
1

我在一個非常密集/緊湊的TextView-full應用程序中有3個字符寬的幾個EditText。它通常在大多數設備和仿真器上顯示。但是,在HTC Evo 3D,HTC myTouch 4G和Viewsonic gTablet上,EditText的寬度應該是它的兩倍。Android EditText在某些設備上行爲異常,尤其是HTC

剝離掉儘可能多的同時仍然複製行爲:

<EditText android:id="@+id/editTextFoo" 
    android:hint="123" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:minEms="3" 
    android:maxEms="3"/> 

我可以在像素,DP,或SP代替WRAP_CONTENT指定約束它,但它與所有的佈局不同相當不令人滿意屏幕尺寸和密度。

是否將EditTexts實現爲在某些設備上具有最小寬度?

編輯:我遇到這幾種不同的佈局類型。

+0

您可能要考慮使用不同的佈局結構,例如'TableLayout'或'RelativeLayout'。 – Phil 2012-01-30 21:21:01

回答

0

回答我自己的問題:

有點違反直覺,但我抓住了一些代碼從我以前做了一個遊戲。 Paint的measureText方法運行良好。如果您使用的是等寬字體,則任何n字母字符串都可以。

Paint p = new Paint(); 
p.setTextSize(editTextFoo.getTextSize()); 
int w = (int) p.measureText("MMM"); 
LayoutParams layoutParams = new LayoutParams(w+40,LayoutParams.WRAP_CONTENT); 
editTextFoo.setLayoutParams(layoutParams); 
相關問題