2016-07-05 8 views
-1

Also, ich versuche, ein lineares Layout zu verwenden, um drei verschiedene Tasten zu halten, sollte jeder 33% der Breite auf einer Zeile einnehmen. Dieses lineare Layout wird unter allen anderen Inhalten in meinem relativen Layout liegen, das alle anderen Widgets für diese Aktivität enthält. Wenn ich die dritte Schaltfläche in das Layout einfüge, haben die anderen zwei leider einen weißen Balken an der Unterseite und die dritte Schaltfläche (in diesem Fall die Home-Schaltfläche) ist höher positioniert als die anderen.Drei Tasten gleichmäßig aufgeteilt lineares Layout

Kann jemand dieses Verhalten erklären und beheben? Vielen Dank.

Dies ist die XML-Datei für das lineare Layout, ich habe den gesamten Text für die anderen Widgets entfernt. Wenn das hilfreich wäre, kann ich es auch posten.

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true"> 

    <Button 
     android:layout_width="0dp" 
     android:layout_weight=".33" 
     android:layout_height="wrap_content" 
     android:text="@string/adfazsdfasdfadfsagjlfkdlgjklfsadgfjgps" 
     android:onClick="resetDates" 
     android:background="@drawable/sumbitstyleing" 
     android:id="@+id/resetDatesButton" /> 

    <Button 
     android:layout_width="0dp" 
     android:layout_weight=".33" 
     android:layout_height="wrap_content" 
     android:text="@string/home" 
     android:onClick="home" 
     android:id="@+id/homeButtonSearch" 
     android:background="@drawable/generalbutton" /> 

    <Button 
     android:layout_weight=".33" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:text="@string/submitchanges" 
     android:onClick="submitChanges" 
     android:background="@drawable/sumbitstyleing" 
     android:id="@+id/submitchanges" /> 

</LinearLayout> 

Das erste Bild ist OHNE den dritten Knopf, das zweite Bild ist MIT dem dritten Knopf.

Without the home button

With the home button

+0

Verwenden Sie nicht alignParentEnd und alignParentRight. Zuallererst werden diese beiden Konflikte in LTR-Sprachen auftreten. Zweitens, da Sie die Breite von match_parent anpassen, werden Sie automatisch auf beide Seiten des Elternelements ausgerichtet. (Der alignParentBottom ist in Ordnung, es besteht kein Konflikt). –

+0

Fügen Sie 'android: baselineAligned =" false "' dem 'LinearLayout' hinzu, um die' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''zu bekommen. Ich bin mir nicht sicher, was die weiße Linie ist. Irgendeine Art von Rendering-Glitch? Ist dies in einem Emulator oder einem Layout-Designer möglich? –

+0

Mögliches Duplikat von [ist es möglich, Schaltflächen gleichmäßig über die Breite eines Android-Linearlayouts zu verteilen] (http://stackoverflow.com/questions/3470420/is-it-possible-to-evenly-distribute-buttons-across-the-) -breite-von-android-linea) – mbmc

Antwort

1

testen, habe ich entfernt Eigenschaften Sie mit RelativeLayout und unnötigen verwenden sollten LinearLayout und horizontal ausgerichtete Tasten,

android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 

und Weightsum auf Linearlayout zusammen mit Taste Höhe zugewiesen Eltern Sie auf diese Weise

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

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

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:weightSum="1"> 

     <Button 
      android:id="@+id/resetDatesButton" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight=".33" 
      android:onClick="resetDates" 
      android:text="Rese check dates" /> 

     <Button 
      android:id="@+id/homeButtonSearch" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight=".33" 
      android:onClick="home" 
      android:text="home" /> 

     <Button 
      android:id="@+id/submitchanges" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight=".33" 
      android:onClick="submitChanges" 
      android:text="submit changes" /> 

    </LinearLayout> 

</RelativeLayout> 

Ergebnis

enter image description here

0

des Versuchen, in Ihrem Linearlayout android hinzufügen: Schwerkraft = "center"

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:gravity="center"> 
... 
</LinearLayout> 
1

Hier passen gehen:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 

    android:layout_width="match_parent" android:layout_height="match_parent" 
android:background="@color/white" 
> 
<LinearLayout 
    android:layout_width="300dp" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:layout_centerHorizontal="true"/> 
    <!--Buttons --> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:weightSum="3" 
     > 

     <android.support.v7.widget.AppCompatButton 
      android:id="@+id/motor_team_send_sms_btn" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="@string/send_sms" 

      /> 

     <android.support.v7.widget.AppCompatButton 
      android:id="@+id/motor_team_sleep_btn" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="@string/sleep" 

      /> 

     <android.support.v7.widget.AppCompatButton 
      android:id="@+id/motor_team_rise_btn" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="@string/rise" 

      /> 
    </LinearLayout> 

Ausgang ist:

enter image description here

Dies könnte Ihnen helfen.

Verwandte Themen