0

Wie kann man verhindern, dass das Kontrollkästchen im Code verschwindet, wenn Text in der TextView zu lang ist? Ich bin nicht daran interessiert, max_width für die TextView zu kodieren und ich möchte meinen ganzen Text anzeigen.Zu lange TextView lässt andere Ansichten verschwinden

<LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 

      <TextView 
       android:id="@+id/tv" 
       style="@style/Text" 
       android:layout_weight="0" 
       android:text="@string/multiple_sounds" /> 

      <CheckBox 
       android:id="@+id/cb" 
       style="@style/Text" 
       android:layout_gravity="right" 
       android:layout_weight="1"/> 

     </LinearLayout> 

styles.xml

<style name="Text"> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:layout_width">wrap_content</item> 
    <item name="android:padding">@dimen/margin</item> 
    <item name="android:textSize">@dimen/text</item> 
    <item name="android:textAlignment">center</item> 
</style> 

Antwort

2

ich Gewicht verwenden würde. Fügen Sie android:weightSum zu Ihrem LinearLayout mit Wert 1 hinzu.
Für jedes Element in Ihrem LinearLayout Gewicht hinzufügen. Zum Beispiel 0.8 für Textansicht und 0,2 für Checkbox.

Dann die Breite auf 0dp für jedes Element festlegen!

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:weightSum="1"> 

     <TextView 
      android:id="@+id/tv" 
      style="@style/Text" 
      android:layout_weight="0.8" 
      android:text="@string/multiple_sounds" /> 

     <CheckBox 
      android:id="@+id/cb" 
      style="@style/Text" 
      android:layout_gravity="right" 
      android:layout_weight="0.2"/> 

    </LinearLayout> 

und aktualisieren Sie Ihren Stil:

<style name="Text"> 
     <item name="android:layout_height">wrap_content</item> 
     <item name="android:layout_width">0dp</item> 
     <item name="android:padding">@dimen/margin</item> 
     <item name="android:textSize">@dimen/text</item> 
     <item name="android:textAlignment">center</item> 
    </style> 
+0

+1 Sie lesen meine Meinung, während ich eine Antwort schreibe :). Der Punkt ist ' 0dp' das ist das Problem und natürlich gibt es keinen Grund, 'android: layout_weight =" 0 "' auf TextView zu verwenden –

+0

Danke! Es funktioniert wie erwartet. – s1vert

-1

Wenn Sie Text in neue Linie gehen wollen (verwenden RelativeLayout):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<CheckBox 
    android:id="@+id/checkBox" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" /> 

<TextView 
    android:id="@+id/textView" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_toStartOf="@id/checkbox" /> 

</RelativeLayout> 

Eine andere Lösung ist es, diese lib zu verwenden, um Text zu schrumpfen : https://github.com/grantland/android-autofittextview

-1

Ich würde vorschlagen, zu Verwenden Sie RelativeLayout, um eine einheitliche Benutzeroberfläche zu erhalten. Im Folgenden finden Sie Probe Relative Layout-Code

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
android:weightSum="2"> 

<TextView 
    android:id="@+id/tv" 
    style="@style/Text" 
    android:layout_toLeftOf="@+id/cb" 
    android:text="@string/multiple_sounds" /> 

<CheckBox 
    android:id="@+id/cb" 
    style="@style/Text" 
    android:layout_gravity="right" 
    android:layout_alignParentEnd="true"/> 

</RelativeLayout> 
0

Wenn Sie große Daten auf Textview sind über angezeigt werden, schlage ich Ansicht blättert in Ihren Eltern Layout zu verwenden.

Verwandte Themen