Ich werde mich bemühen, den vertikalen Mittelpunkt von linearlayout auszurichten, der folgendes Bild (Skycolor-Rand) zeigt, um den vertikalen Mittelpunkt der Schaltfläche zu löschen.
also setze ich die Schwerkraft von id: groupNumbers auf center_vertical.
aber nichts geändert.
So richten Sie id: groupNumbers an der Mitte der Schaltflächen aus
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="horizontal"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<LinearLayout
Android:id="@+id/groupNumbers"
Android:orientation="horizontal"
Android:gravity="center_vertical"
Android:layout_weight="0.7"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content">
<LinearLayout
Android:orientation="horizontal"
Android:layout_weight="1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content">
<TextView
Android:id="@+id/txtSelected01"
Android:text="00"
Android:textSize="30dp"
Android:gravity="center_horizontal"
Android:layout_weight="1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
Android:orientation="horizontal"
Android:layout_weight="1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content">
<TextView
Android:id="@+id/txtSelected02"
Android:text="00"
Android:textSize="30dp"
Android:gravity="center_horizontal"
Android:layout_weight="1"
Android:layout_width="0dp"
Android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
<Button
Android:id="@+id/btn_deleteNum"
Android:text="Delete"
Android:textSize="20dp"
Android:layout_weight="0.2"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"/>
</LinearLayout>
Ändern Sie die Ausrichtung und die Schwerkraft in
<LinearLayout
Android:id="@+id/groupNumbers"
Android:orientation="horizontal"
Android:gravity="center_vertical"
Android:layout_weight="0.7"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content">
zu
Android:orientation="vertical"
Android:layout_gravity="center_vertical"
Sie fügen Orientierung hinzu: horizontal, sodass das Layout alle Elemente in einer horizontalen Linie enthält. Dadurch können Sie das Element nicht in die Mitte bringen.
Hoffe das hilft.
verwenden Sie Android:layout_gravity
anstelle von Android:gravity
Android:gravity
legt die Schwere des Inhalts der Ansicht fest, die für .Android:layout_gravity
verwendet wird, und legt die Schwere der Ansicht oder des Layouts im übergeordneten Element fest.
Verwenden Sie layout_gravity
anstelle von gravity
. layout_gravity
sagt dem übergeordneten Element, wo es positioniert werden soll, und gravity
teilt seinem Kind mit, wo es positioniert werden soll.
<LinearLayout
Android:id="@+id/groupNumbers"
Android:orientation="horizontal"
Android:layout_gravity="center_vertical"
Android:layout_weight="0.7"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content">
Für mich habe ich das Problem mit Android:layout_centerVertical="true"
in einer übergeordneten RelativeLayout
behoben:
<RelativeLayout ... >
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical"
Android:layout_centerVertical="true">
</RelativeLayout>
Für eine Box, die in der Mitte angezeigt wird - horizontal und vertikal -, habe ich dies mit nur einem LinearLayout funktionieren lassen. Die Antwort von Viswanath L war sehr hilfreich
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:background="@drawable/layout_bg"
Android:gravity="center"
Android:orientation="vertical"
Android:padding="20dp">
<TextView
Android:id="@+id/dialog_header"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center_horizontal"
Android:padding="10dp"
Android:text="Error"
Android:textColor="#000" />
<TextView
Android:id="@+id/message_text"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center_horizontal"
Android:padding="10dp"
Android:text="Error-Message"
Android:textColor="#000" />
<Button
Android:id="@+id/dialogButtonOK"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@+id/message_text"
Android:layout_gravity="center_horizontal"
Android:layout_marginTop="5dp"
Android:text="Ok" />
</LinearLayout>
verwenden Sie RelativeLayout in LinearLayout
beispiel:
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_centerVertical="true"
Android:text="Status"/>
</RelativeLayout>
</LinearLayout>
Verwenden Android:weightSum
-Eigenschaft für das übergeordnete LinearLayout und geben Sie den Wert 3 ein. Verwenden Sie dann in den untergeordneten LinearLayout Android:layout_weight
2 bzw. 1. Verwenden Sie dann im ersten Chil LinearLayout Android:layout_gravity="center_vertical"
. Wie im folgenden Code gezeigt
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:weightSum="3"
Android:orientation="horizontal">
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_weight="2"
Android:layout_gravity="center_vertical"
Android:orientation="horizontal">
<TextView
Android:id="@+id/status_text"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="00"
Android:textColor="@color/red"
Android:textSize="@dimen/default_text_size"
/>
<TextView
Android:id="@+id/status_text"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="00"
Android:textColor="@color/red"
Android:textSize="@dimen/default_text_size"
/>
</LinearLayout>
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_weight="1">
<Button
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:text="Delete"/>
</LinearLayout>
</LinearLayout>