3

我面臨的一個奇怪的問題,我有一個InputTextLayout,並在其中一個EditText,我想實現這樣的事情(在下面的圖片所示)(圖片由材料設計guidlines:https://material.io/guidelines/components/text-fields.html#text-fields-layout) ,那裏有兩個單獨的提示。我通過將android:提示添加到兩個佈局來實現此目的。這很好,但當焦點離開這個時候,「標籤」向下移動並重疊「佔位符」文本。 (只有當用戶沒有給出任何輸入並且編輯文本爲空時 - 兩個提示都重疊)。任何關於如何解決這個問題的指針?的Android TextInputLayout暗示重疊的EditText暗示

作爲一項要求,我需要兩個提示,並且「標籤」不應該因焦點更改而下移。這兩種提示應該留在自己的位置

<android.support.design.widget.TextInputLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="Label"> 

     <android.support.v7.widget.AppCompatEditText 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:hint="Placeholder" 
      android:inputType="textCapWords" 
      /> 

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

enter image description here

+0

從AppCompatEditText中刪除提示 – nitinkumarp

+0

從AppcompatEditText或TextInputLayout中刪除提示。你會留在那裏的一個將會填充你的提示。 –

+0

@PallaviTapkir,這將工作,但作爲一個要求,我需要兩個提示在那裏,其中一個應該隱藏焦點移動。或者如果有任何方法,「標籤」不應該下移 –

回答

0

刪除提示,我知道,我們不能按照你的意願去做。

因爲TextInputLayout被設計爲一旦獲得焦點就浮動提示所以,一旦它上升,沒有東西會在佔位符中出現。我們可以按照以下的細微變化來滿足您的要求。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center" 
    tools:context="com.stackoverflow.MainActivity"> 


    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingLeft="10dp" 
     android:text="Lable" 
     android:textColor="@color/colorPrimary" /> 

    <android.support.design.widget.TextInputLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" 
     android:paddingLeft="10dp" 
     app:hintEnabled="false"> 

     <android.support.v7.widget.AppCompatEditText 
      android:layout_width="match_parent" 
      android:layout_height="?actionBarSize" 
      android:hint="Place Holder" 
      /> 

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

</RelativeLayout> 

enter image description here

0

<android.support.design.widget.TextInputLayout 
 
     android:layout_width="match_parent" 
 
     android:layout_height="wrap_content" 
 
     android:hint="Placeholder"> 
 

 
     <android.support.v7.widget.AppCompatEditText 
 
      android:layout_width="match_parent" 
 
      android:layout_height="wrap_content" 
 
      
 
      android:inputType="textCapWords" 
 
      /> 
 

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

0

使用下面的代碼。它應該工作正常。

<android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="8dp" 
      android:layout_marginTop="8dp" 
      android:textColorHint="@color/white"> 

      <EditText 

       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:hint="Placeholder" 
       android:inputType="text" 
       android:textColor="@color/white" 
       android:textColorHint="@color/white" /> 
     </android.support.design.widget.TextInputLayout> 
0

無論從AppcompatEditTextTextInputLayout

使用android:hint=""只在一個或者AppcompatEditTextTextInputLayout

<android.support.design.widget.TextInputLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    > 

    <android.support.v7.widget.AppCompatEditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="Placeholder" 
     android:inputType="textCapWords" 
     /> 

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

瞭解更多信息 check this link

0

完美一個!

enter image description here

XML代碼

<android.support.design.widget.TextInputLayout 
     android:id="@+id/inputLayoutPhone" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="24dp" 
     android:hint="Phone Number"> 

     <android.support.design.widget.TextInputEditText 
      android:id="@+id/edtPhone" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:hint="+91" 
      android:inputType="phone" /> 
</android.support.design.widget.TextInputLayout> 

科特林代碼

edtPhone.hint="" 
edtPhone.onFocusChangeListener = View.OnFocusChangeListener { _, hasFocus -> 
     inputLayoutPhone.isHintEnabled = hasFocus 
     if(hasFocus){ 
      edtPhone.hint="+91" 
     }else{ 
      edtPhone.hint= "Phone Number" 
     } 
    } 

Java代碼

edtPhone.setHint(""); 
    edtPhone.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
     @Override 
     public void onFocusChange(View view, boolean hasFocus) { 
      if (hasFocus){ 
       edtPhone.setHint("+91"); 
      }else{ 
       edtPhone.setHint("Phone Number"); 
      } 

     } 
    });