2012-07-03 68 views

回答

65

爲了使提示文本與EditText一起工作,您必須確保定義了android:ellipsize =「start」。我不知道爲什麼這會使它工作,但它確實如此。

實施例從個人代碼被拉:

<EditText 
    android:id="@+id/player2Name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    android:ellipsize="start" 
    android:gravity="center_horizontal" 
    android:hint="@string/player2_name" 
    android:inputType="textCapWords|textPersonName" 
    android:singleLine="true" /> 
+0

感謝您發佈並歡迎來到StackOverflow!是的,ellipsize =「開始」確實會影響到這一點。不知道爲什麼。沒有它,提示並不適合我。 –

+4

我認爲我在這裏太晚了,但今天我已經看到了這個答案,並指出,這裏是不需要的android:ellipsize =「開始」,以提出一個提示中心,AFAIK。看到我的答案。可能它也是有用的。 –

+1

正如在其他答案中所述,它是android:gravity =「center」(或類似的變體),以文本爲中心,而不是ellipsize。 – hBrent

25

使用該XML屬性:

機器人:比重= 「中心」

+1

是的,這是必要的文本居中。垂直以及水平。 –

+0

它與Constraintslayout裏面的edittext一起工作 –

28

實際上android:gravity="center_horizontal"確實 「中心」 的效果。您可以使用

安卓重力=「開始」

把提示文本在的EditText視圖等的開始。

+2

謝謝。我用'android:ellipsize =「start」'嘗試過,沒有任何變化。加入'android:gravity =「center_horizo​​ntal」'做了訣竅。再次感謝。 –

+0

對我的作品感謝 – HCarrasko

8

使用屬性

android:gravity="center" 
7

我在每一個情況下使用此代碼,它完美的作品,而無需使用機器人:ellipsize =「開始」,使在中心的提示。

<EditText 
    android:id="@+id/player2Name" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center_horizontal" 
    android:hint="robi" 
    android:inputType="text" /> 
3

不幸的是,沒有答案幫助我對齊使用LTR語言編寫的提示,而佈局方向是RTL。我需要一種翻譯應用程序的佈局,以使覆蓋圖標不會干擾RTL文本。不過,雖然沒有任何文字然而,這招沒有用提示工作(圖標出現在上面的提示),我來到了下面的Java解決佈局問題:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
. . . 
     if (isRightToLeft()){ 
      EditText guess = (EditText) rootView.findViewById(android.R.id.text1); 
      CharSequence hint = "\u200F" + guess.getHint(); 
      guess.setHint(hint); 
     } 
. . . 
} 

訣竅是從右至左標記預先添加一個從左到右的字符串。它似乎工作,但有誰知道一個更優雅的解決方案?

2

我想答案應該是:

android:textAlignment="center" 
+0

我同意,這是正確的答案只集中文本,而不是提示。 – 0101100101

+0

重力有時會失敗。這工作,謝謝 – j2emanue

0

這爲我工作:

<android.support.design.widget.TextInputLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/nombreslayoutinput"> 
    <EditText 
     android:id="@+id/nombreslayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/nombres" 
     android:layout_centerInParent="true" 
     android:gravity="center|center_vertical" 
     android:ellipsize="start" 
     android:inputType="textCapWords|textPersonName" 

     /> 
</android.support.design.widget.TextInputLayout> 
0

使用android:textAlignment="center"在EditText上,它的工作我

相關問題