2015-11-19 174 views
2

我已將TextInputLayout用於EditText,並且在其下方有一個TextView。我發現TextInputLayout和TextView之間有一個額外的空間。我想刪除額外的空間。附有和沒有TextInputLayout的圖片。我在開發人員選項中啓用了界限,因此圖片可能看起來很混亂但內容豐富。TextInputLayout和TextView之間的額外空間

下面是佈局:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <android.support.design.widget.TextInputLayout 
     android:id="@+id/layoutCurrentPW" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" 
     app:errorEnabled="true"> 

     <EditText 
      android:id="@+id/editTextCurrentPassword" 
      android:layout_width="match_parent" 
      android:layout_height="40dp" 
      android:layout_marginLeft="50dp" 
      android:layout_marginRight="50dp" 
      android:layout_marginTop="30dp" 
      android:background="@drawable/edit_text_border_drawable" 
      android:gravity="center" 
      android:hint="@string/current_password" 
      android:layout_gravity="bottom" 
      android:inputType="textPassword" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textColor="@color/black" /> 
    </android.support.design.widget.TextInputLayout> 

    <TextView 
     android:id="@+id/textForgotPassword" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:clickable="true" 
     android:text="@string/forgot_password" 
     android:textSize="17sp" /> 
</LinearLayout> 

without textInputLayout

With TextInputLayout

回答

0

看起來這是不是多餘的空間,但只是TextInputLayout小部件的下半部分。我沒有你的背景資源,但這基本上是你的代碼在我的設備上看起來像什麼。如果需要,您可以嘗試EditText而不將其放入TextInputLayout小部件中,然後在底部或頂部不會有額外的空間。

how your code looks on my device

<?xml version="1.0" encoding="utf-8"?> 

<android.support.design.widget.TextInputLayout 
    android:id="@+id/layoutCurrentPW" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="10dp" 
    android:background="@android:color/holo_green_light" 
    app:errorEnabled="true"> 

    <EditText 
     android:id="@+id/editTextCurrentPassword" 
     android:layout_width="match_parent" 
     android:layout_height="40dp" 
     android:layout_marginLeft="50dp" 
     android:layout_marginRight="50dp" 
     android:layout_marginTop="30dp" 
     android:gravity="center" 
     android:background="@android:color/white" 
     android:text="current_password" 
     android:layout_gravity="bottom" 
     android:inputType="textPassword" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textColor="@android:color/black" /> 
</android.support.design.widget.TextInputLayout> 

<TextView 
    android:id="@+id/textForgotPassword" 

    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:clickable="true" 
    android:text="forgot_password" 
    android:textSize="17sp" /> 

0

試試這個 機器人:layout_alignStart = 「@ ID/layoutCurrentPW」

3

沒有與TextInputLayout其顯示附加填充一旦顯示錯誤,並且當錯誤被清除或不除去一個已知的問題調用setErrorEnabled(false)。

https://code.google.com/p/android/issues/detail?id=200137

針對此問題的解決方法是手動隱藏底部子佈局時,錯誤被清除:

textInputLayout.setError(null); 
if (textInputLayout.getChildCount() == 2) 
    textInputLayout.getChildAt(1).setVisibility(View.GONE); 
+0

良好的信息。 +1 – cgr