2016-10-19 2 views
1

이 이미지의 것과 비슷한 입력 필드를 만드는 방법이 있습니까? 왼쪽의 아이콘, 오른쪽의 입력 - 기본 TextInputLayout 만 사용 하시겠습니까?머티리얼 디자인 입력 텍스트

여러 조합을 시도했으며 아이콘은 항상 TextInputEditText 내에 있습니다. TextInputLayout 방향을 가로로 변경해 보았지만 제대로 작동하지 않았습니다. ImageView와 EditText를 다른 ViewGroup 안에 배치하지 않고이 작업을 수행합니까?

다음은 입력 필드를 만드는 데 사용한 코드이지만 아이콘은 TextInputEditText 내부에 남아 있습니다.

<android.support.design.widget.TextInputLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="Test" 
     > 
     <android.support.design.widget.TextInputEditText 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:drawableStart="@drawable/ic_bank_card_back_grey_24dp" 
      android:drawablePadding="@dimen/default_padding"    
      /> 
    </android.support.design.widget.TextInputLayout> 

Material Design Input Text

+1

내가 그 아이콘, 필드의 세 개의 열하는'TableLayout'의 가정, 그리고'Spinner'을하지만, 사용하는 것은'uiautomatorviewer'은의 구조를 검사합니다 그 UI와 알아 내. – CommonsWare

+0

도움이 될 수도 있습니다. http://stackoverflow.com/questions/3554377/handling-click-events-on-a-drawable-within-an-edittext – zombie

답변

1

이 법안에 적합합니까? : 코드에서

<android.support.design.widget.TextInputLayout 
    android:id="@+id/TextInputLayout1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <android.support.v7.widget.AppCompatEditText 
     android:id="@+id/EditText1" 
     android:hint="code" 
     android:text="0044" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:imeOptions="actionNext" 
     android:inputType="phone" 
     android:minWidth="350dp" 
     android:drawableLeft="@drawable/cross" 
     android:drawableStart="@drawable/cross" 
     android:textColor="#00ff00" 
     android:textColorHint="#ff0000" 
     android:textCursorDrawable="@null" 
     /> 
</android.support.design.widget.TextInputLayout> 

이미지 : 가 image from code

+0

Nop. 이것은 내가 한 것과 같습니다. 첨부 된 이미지를 보면 아이콘에 밑줄이 없음을 볼 수 있습니다. LinearLayout과 ImageView를 사용하여 비슷한 것을 얻을 수 있지만,이 작업을 수행하는 더 좋은 방법이 있다고 생각합니다. 다른 생각? –

+0

@JeffersonTavares 그것은 복합 소재 드로어 블이 'EditText'에서 어떻게 작동 하는지를 보여줍니다. 이 동작을 변경하려면, 사용중인'EditText' 클래스를 서브 클래스하거나, 다소 거추장스러운 리플렉션을하거나 배경 drawable에 패딩 해킹을 사용해야합니다. 별도의'ImageView' , 당신이 올린 이미지가하는 것처럼 보이는 것입니다. –

+0

고마워요. 나는이 질문을 다른 사용자들에게별로 도움이되지 않을 것이기 때문에 닫을 것이다. TextInputLayout이 LinearLayout에서 상속 받았기 때문에 ImageView와 그 내부에있는 EditText를 래핑하는 것이 쉽고 간단해야합니다. 그러나 때로는 예상대로 작동하지 않습니다. xD –

관련 문제