2016-09-22 9 views
1

drawableと中心のヒントをEditTextに揃えたいとします。そのために、私は、コードのこの部分を持っています、ヒントとdrawableを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> 

今とすぐに、ユーザが入力し始めると、drawableEditTextの左端に移​​動する必要があります。これを達成する方法は?

+0

おそらく、EditTextクラスをオーバーライドして再描画する必要があるかもしれません。 – Stallion

+1

ドロアブルは中央にありません。それは左です。あなたの 'EditText'は' wrap_content'なので、中心にあるようです。 –

+0

それを実現する方法wrap_contentを作成しないでください –

答えて

0

EditTextには、android:layout_gravity = "center"を使用してください。これは、中心にヒントを設定するのに役立ちます。

とdrawableの場合はこれがハックです。 editTextのdrawableTopを設定し、いくつかのpaddingTopをビューに与えます。

+1

私のヒントとdrawableはすでにcenter.Iでドロイブルを左に移動したいと思います。ユーザーが入力するとすぐに –

+0

はコードで位置を変更します。 onTextChangeリスナでそれを行います。あなたはxmlでそれを達成することはできません。 –

+0

**あなたのために** onTextChangeListener **を実装する必要があります** EditText **。 ** setCompoundDrawablesWithIntrinsicBounds(Drawableの左、Drawableの上、Drawableの右、Drawableの下)** –

関連する問題