2016-09-22 52 views
1

我想對齊drawable並提示中心EditText。對於我有這樣一段代碼,如何集中對齊edittext中的提示和繪圖?

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:id="@+id/relative_layout" 
     android:layout_margin="5dp" > 

    <EditText 
     android:id="@+id/edittext" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:hint="Hint" 
     android:background="@null" 
     android:gravity="center" 
     android:textColor="@android:color/black" 
     android:textColorHint="@color/black" 
     android:textSize="14sp" 
     android:paddingTop="5dp" 
     android:paddingBottom="5dp" 
     android:drawableLeft="@android:drawable/icon" 
     android:drawableStart="@android:drawable/icon" /> 

</RelativeLayout> 

現在只要用戶開始輸入時,drawable應該移動到的EditText極左。如何實現這一目標?

+0

也許您可能需要重寫EditText類並重繪... – Stallion

+1

您的drawable不在中心。它在左邊。你的'EditText'是'wrap_content',所以它看起來就好像它在中心。 –

+0

那麼如何實現它不w_o wrap_content –

回答

0

使用android:layout_gravity =「center」爲您的EditText。這將幫助你在中心設置提示。

和drawable這是黑客。設置editText的drawableTop並給視圖添加一些paddingTop。

+1

我的提示和drawable已經在center.I想移動drawable到左側,只要用戶輸入。 –

+0

通過代碼更改它的位置。在onTextChange偵聽器中執行。你不能通過xml實現它。 –

+0

那麼你需要爲你** EditText **實現** onTextChangeListener **。並在運行時使用setCompoundDrawablesWithIntrinsicBounds(可繪製的左側,可繪製的頂部,可繪製的右側,可繪製的底部)設置drawables ** –

相關問題