2017-06-13 81 views
0

所以基本上我的想法是創建一個帶有邊界的浮動標籤EditText。 這種情況是,當EditText不在焦點時,提示應該垂直居中顯示,但是當它被聚焦時,它會在內部展開。帶邊界的TextInput佈局

我附上的實施例,以及: Image

,其中上方的聚焦和下一個是沒有焦點。

請幫忙。

編輯密碼佈局:

<RelativeLayout 
    android:id="@+id/relativePsw" 
    android:layout_width="match_parent" 
    android:layout_height="56dp" 
    android:background="@drawable/psw_et_boundary"> 

    <android.support.design.widget.TextInputLayout 
     android:id="@+id/etPasswordLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:passwordToggleDrawable="@drawable/password_drawable" 
     app:passwordToggleEnabled="true"> 

     <android.support.design.widget.TextInputEditText 
      android:id="@+id/passwordEt" 
      style="@style/EditTextCustomHolo" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="#0000" 
      android:hint="@string/password" 
      android:inputType="textPassword" 
      android:maxLines="1" /> 
    </android.support.design.widget.TextInputLayout> 
</RelativeLayout> 

的Java:

最初設置填充:

mRelativePsw.setPadding(dpToPx(14), 0, dpToPx(14), 0); 
    mPasswordEt.setPadding(0, dpToPx(10), 0, 0); 

OnFocusChange:

mPasswordEt.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
     @Override 
     public void onFocusChange(View view, boolean focus) { 
      if (focus) { 
       mPasswordEt.setPadding(dpToPx(14), dpToPx((float) 6.3), dpToPx(14), 0); 
       mRelativePsw.setPadding(0, dpToPx(12), 0, 0); 
       Utils.showSoftKeyboard(LoginActivity.this, mPasswordEt); 
      } else { 
       if (mPasswordEt.getText().toString().trim().equalsIgnoreCase("")) { 
        mPasswordEt.setPadding(dpToPx(14), 0, dpToPx(14), 0); 
        mRelativePsw.setPadding(0, dpToPx(10), 0, 0); 
       } 
      } 
     } 
    }); 

這是一個漫長的過程,到h並且每個人都像這樣。建議提供幫助。

+0

把你的XML文件的一些代碼?如果你有 –

+0

你的想法很有趣,那麼你的問題是什麼? – lelloman

+0

如何解決這個問題..我使用了一種方法來動態地改變填充,它有點像工作,但實現起來非常漫長。 我也會附上代碼。 –

回答

0

我的這一建議是,添加邊框設計繪製文件TextInputLayout作爲背景,並設置一些填充到約8DP將是適當的。作爲 android:background="@android:color/transparent"

所以默認情況下該編輯的文本行TextInputEditText的接盤背景將消失,當焦點上編輯文本,當你將在隨後輸入標籤的東西將是邊框內。

試試這個代碼是你想要的標籤將在中心的東西。

試試這個它是正確的,它給浮動標籤的中心。

<android.support.design.widget.TextInputLayout 
     android:id="@+id/input_layout_name" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="right" 
     android:gravity="center"> 

     <EditText 
      android:id="@+id/input_name" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="right" 
      android:gravity="center" 
      android:hint="Enter Name"/> 
    </android.support.design.widget.TextInputLayout> 
+0

就是這樣......標籤不在中心。 –

+0

試試這適用於它在中心提供浮動標籤。 –