2017-03-06 94 views
1

我使用android設計庫版本25.1.1中的TextInputLayout。用下面的代碼:TextInputLayout password使用圓角覆蓋

<android.support.design.widget.TextInputLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:local="http://schemas.android.com/apk/res-auto" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    local:passwordToggleEnabled="true" 
    local:hintEnabled="false"> 
    <android.support.design.widget.TextInputEditText 
    android:id="@+id/confirmationEditText" 
    android:singleLine="true" /> 
</android.support.design.widget.TextInputLayout> 

但是當按下密碼切換圖標,其漣漪效應爲TextInput的背景之上得出: Background pressed state

如何設置圓角半徑爲passwordToggle?我可以引用它的現有背景,並用所需的屬性「包裝」它(如何查找切換使用的默認可繪製路徑)?

回答

0

使用自定義形狀這樣的:

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
     <gradient 
      android:endColor="@color/something" 
      android:centerColor="@color/something_else" 
      android:startColor="@color/something_else_still" 
      android:angle="270" /> 
     <corners 
      android:radius="3dp" /> 
     <padding 
      android:left="10dp" 
      android:top="10dp" 
      android:right="10dp" 
      android:bottom="10dp" /> 
    </shape> 
3

我試圖落實新項目,以瞭解您的方案。

請看看解決方案。我附上了它的外觀截圖。

enter image description here

你必須包括在繪製文件夾繪製,並將其設置成背景TextInputEditText

round_corner_toggle.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:left="20dp"> 
     <shape android:shape="rectangle" > 
      <size android:height="20dp" /> 
      <solid android:color="#d8d8d8" /> 
      <corners android:radius="5dp" /> 
     </shape> 
    </item> 

    <item android:right="60dp"> 
     <shape android:shape="rectangle" > 
      <size android:height="20dp" /> 
      <solid android:color="#ecf0f1" /> 
      <corners android:radius="5dp" /> 

     </shape> 
    </item> 
</layer-list> 

內容TextInputLayout

  <android.support.design.widget.TextInputLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       app:counterEnabled="true" 
       app:counterMaxLength="8" 
       android:background="#FFFFFF" 
       app:passwordToggleEnabled="true" 
       app:passwordToggleTint="@color/colorPrimary"> 

       <android.support.design.widget.TextInputEditText 
        android:id="@+id/tietPassword" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:hint="Password" 
        android:background="@drawable/round_corner_toggle" 
        android:inputType="textPassword" 
        android:padding="@dimen/activity_horizontal_margin" 
        android:maxLength="8" /> 
      </android.support.design.widget.TextInputLayout> 
    </LinearLayout>