2017-10-04 228 views
3

我在約束佈局裏面有一些問題,我有一個支持多行的TextView。當TextView展開時,它與約束佈局內的其他組件重疊。下面是我使用的XML佈局和一個GIF來演示。約束佈局TextView重疊

任何幫助將不勝感激。

展示 - >https://puu.sh/xPFSF/3f6711a68f.gif

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:background="@color/activity_background" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fillViewport="true"> 

<android.support.constraint.ConstraintLayout 
    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:focusableInTouchMode="true" 
    android:layout_height="0dp"> 

    <android.support.constraint.Guideline 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/leftGuideline" 
     app:layout_constraintGuide_begin="20dp" 
     android:orientation="vertical"/> 

    <android.support.constraint.Guideline 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/rightGuideline" 
     app:layout_constraintGuide_end="20dp" 
     android:orientation="vertical"/> 

    <TextView 
     android:id="@+id/subject" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:hint="@string/subject" 
     android:layout_marginTop="20dp" 
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintStart_toStartOf="@id/leftGuideline" 
     app:layout_constraintEnd_toEndOf="@id/rightGuideline" /> 

    <EditText 
     android:id="@+id/message" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:hint="@string/your_message" 
     android:layout_marginTop="20dp" 
     android:minLines="2" 
     app:layout_constraintTop_toBottomOf="@id/subject" 
     app:layout_constraintStart_toStartOf="@id/leftGuideline" 
     app:layout_constraintEnd_toEndOf="@id/rightGuideline" /> 

    <Button 
     android:id="@+id/sendMessageButton" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="20dp" 
     android:text="@string/send_message" 
     style="@style/button_main" 
     app:layout_constraintVertical_bias="1" 
     app:layout_constraintTop_toBottomOf="@id/message" 
     app:layout_constraintStart_toStartOf="@id/leftGuideline" 
     app:layout_constraintBottom_toTopOf="@+id/saveDraftButton" 
     app:layout_constraintEnd_toEndOf="@id/rightGuideline" /> 

    <TextView 
     android:id="@+id/saveDraftButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/save_draft" 
     android:layout_marginBottom="10dp" 
     android:drawableStart="@drawable/icon_arrow" 
     android:gravity="center_vertical" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintStart_toStartOf="@id/leftGuideline" 
     app:layout_constraintEnd_toEndOf="@id/rightGuideline" /> 

</android.support.constraint.ConstraintLayout> 
</ScrollView> 

編輯:刪除RecyclerView,因爲它是沒有必要的。 按照要求,button_main風格:

<style name="button_main" parent="@style/button"> 
     <item name="android:textColor">@color/button_main_stateful_text</item> 
     <item name="android:background">@drawable/primary_action_button</item> 
     <item name="android:textSize">@dimen/h5_size</item> 
     <item name="android:textAllCaps">false</item> 
    </style> 

button_main_stateful_text & primary_action_button只是兩個選擇顏色之間進行切換。

+0

共享代碼@風格/ button_main – Ankita

+0

我能知道什麼?RecyclerView –

回答

0

scottazord加入

app:layout_constraintBottom_toTopOf="@+id/sendMessageButton" 

到的EditText應該解決您的問題。

的EditText上完整的代碼

<EditText 
     android:id="@+id/message" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:hint="your message" 
     android:layout_marginTop="20dp" 
     android:minLines="2" 
     app:layout_constraintTop_toBottomOf="@id/subject" 
     app:layout_constraintStart_toStartOf="@id/leftGuideline" 
     app:layout_constraintEnd_toEndOf="@id/rightGuideline" 
     app:layout_constraintBottom_toTopOf="@+id/sendMessageButton"/> 

現在這應該解決您的問題