2016-08-22 6 views
0

私はshow password imageViewでパスワードにEditTextを設計しようとしています。しかし私は以来、私はImageViewを見ることができません正しくbeacuseを設計することはできません。 wrap_contentに変更すると、ImageViewが表示されますが、UIでは非常に悪いです。固定サイズを与えずにデザインすることは可能ですか?show passwordボタンでパスワードテキストを設計する

ここは私のコードです。

 <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="8dp" 
      android:orientation="horizontal" 
      android:layout_marginBottom="8dp"> 

      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:orientation="horizontal"> 

      <EditText 
       android:id="@+id/registerPassword" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:hint="@string/register_password" 
       android:inputType="textPassword" /> 
      <ImageView 
       android:id="@+id/fragment_login_password_visibility" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:src="@android:drawable/ic_partial_secure" 
       android:layout_gravity="center" 
       android:clickable="true"/> 

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

EDIT:

アンドロイド:layout_weight = 1つの解決される問題。これで、ImageTextがEditTextのままになっています。しかし、今、私はTextInputLayoutヒントが動作していません。

Here Hint works

Here Hint does not works

+0

最新のサポートライブラリが組み込まれていたパスワードトグルのサポート割り当てます。 https://developer.android.com/topic/libraries/support-library/revisions.html#rev24-2-0 – Budius

答えて

0
<android.support.design.widget.TextInputLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="8dp" 
     android:orientation="horizontal" 
     android:layout_marginBottom="8dp"> 

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:orientation="horizontal"> 

     <EditText 
      android:id="@+id/registerPassword" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:hint="@string/register_password" 
      android:inputType="textPassword" /> 

     <ImageView 
      android:id="@+id/fragment_login_password_visibility" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:src="@android:drawable/ic_partial_secure" 
      android:layout_gravity="center" 
      android:clickable="true"/> 

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

最初は "1" にLinearLayoutandroid:weightSumを設定します。次に、android:layout_widthandroid:layout_weightEditTextにそれぞれ "0dp"と "1"に設定します。

+0

私の編集を参照してください、あなたの変更のヒントがパスワードフィールドのために働いていない後 – goGud

+0

これらの変更は 'EditText'ヒントとは関係ありません。 –

+0

それはLinearLayoutのためです。リニアレイアウトの水平方向ではなく、別のオプションを使用することは可能ですか? – goGud

0

あなたは体重を使用しようとしましたか?

android:layout_weight="1"

android:layout_width="0dp"又はandroid:layout_width="wrap_content"

+0

layout_weightが問題を解決しましたが、今はTextInputLayoutプロパティが失われました... – goGud

+0

私の編集 – goGud

4

ImageViewを使用する必要はありません。

サポートライブラリには、パスワードビジビリティトグルのサポートがrecent update(リビジョン24.2.0〜2016年8月)に追加されています。

それを試してみてください。

setPasswordVisibilityToggleDrawable(RESIDをint型)

は、パスワードの可視性のトグルボタンに使用するアイコンを設定します。

https://developer.android.com/reference/android/support/design/widget/TextInputLayout.html

0

これを試してみてください:

<LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 
      <EditText 
       android:id="@+id/editText" 
       android:layout_weight="1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:hint="Password" 
       android:singleLine="true" 
       android:textSize="25sp" 
       android:paddingRight="60dp" 
       /> 
      <ImageButton 
       android:id="@+id/showpass" 
       android:layout_marginLeft="-60dp" 
       style="?android:buttonBarButtonStyle" 
       android:paddingBottom="5dp" 
       android:src="@drawable/pass_ic" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 
     </LinearLayout> 
0

私はpasswordToggleDrawableでTextInputLayoutを使用することをお勧めします。

<android.support.design.widget.TextInputLayout 
      android:id="@+id/textInputPasswordLayout" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      app:passwordToggleContentDescription="Show" 
      app:passwordToggleDrawable="@drawable/ic_password_visibility_selector" 
      app:passwordToggleEnabled="true"> 

      <android.support.design.widget.TextInputEditText 
       android:id="@+id/textInputEditTextPassword" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:ems="10" 
       android:fontFamily="sans-serif-light" 
       android:gravity="bottom" 
       android:hint="@string/enter_your_password"/> 


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

app:passwordToggleDrawable="@drawable/ic_password_visibility_selector"あなたの描画可能

関連する問題