2016-10-05 1 views
0

Ich las dies: How to align linearlayout to vertical center? Aber es hat mir nichtAndroid lineares Layout Zentrierung

hilft Grundsätzlich versuche ich, in der Mitte meines Bildschirms zum Zentrum 2 ImageButtons. Die beiden Tasten sind in einer linearLayout horizontal ausgerichtet.

Ich versuchte, eine relativeLayout mit vertikaler Ausrichtung zu verwenden, um die zwei imagebuttons in der Mitte in der vertikalen Richtung zu zentrieren, aber das scheint die Arbeit nicht zu tun.

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:orientation="vertical" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:background="@color/white" 
    tools:context="com.example.max.testcase.MainActivity"> 

    <Button 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:onClick="loadSomething" 
     android:padding="5sp" 
     android:layout_marginTop="5sp" 
     android:layout_marginBottom="5sp" 
     android:textAlignment="center" 
     android:text="Click here to load the site" 
     android:textColor="@color/white" 
     android:textSize="16sp" 
     android:background="@color/blue" 
     /> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:layout_gravity="center_vertical"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:layout_gravity="center"> 
      <ImageButton 
       android:id="@+id/icon1" 
       android:onClick="method1" 
       android:layout_width="0dp" 
       android:layout_weight="1" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="100sp" 
       android:padding="20dp" 
       android:paddingTop="50dp" 
       android:adjustViewBounds="true" 
       android:layout_gravity="left" 
       android:gravity="center_horizontal" 
       android:scaleType = "fitCenter" 
       android:maxWidth="350dp" 
       android:maxHeight="350dp" 
       android:background="@color/white" 
       android:src="@drawable/icon1" /> 

      <ImageButton 
       android:id="@+id/icon2" 
       android:onClick="method2" 
       android:layout_width="0dp" 
       android:layout_weight= "1" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="100sp" 
       android:padding="20dp" 
       android:paddingTop="50dp" 
       android:layout_gravity="right" 
       android:gravity="center_horizontal" 
       android:adjustViewBounds="true" 
       android:maxWidth="350dp" 
       android:maxHeight="350dp" 
       android:scaleType="fitCenter" 
       android:background="@color/white" 
       android:src="@drawable/icon2" 
       /> 
     </LinearLayout> 
    </RelativeLayout> 
</LinearLayout> 

Die beiden Tasten auf der oberen Menüleiste, halten kleben

Antwort

2

Put

android:layout_height="match_parent" 

zum RelativeLayout, und ersetzen android:layout_gravity="center" mit

android:layout_centerInParent="true" 

in seinem Kind Linearlayout

Machen Sie es mögen -

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:orientation="vertical" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:background="@color/white" 
    tools:context="com.example.max.testcase.MainActivity"> 

    <Button 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:onClick="loadSomething" 
     android:padding="5sp" 
     android:layout_marginTop="5sp" 
     android:layout_marginBottom="5sp" 
     android:textAlignment="center" 
     android:text="Click here to load the site" 
     android:textColor="@color/white" 
     android:textSize="16sp" 
     android:background="@color/blue" 
     /> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:layout_gravity="center_vertical"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:layout_centerInParent="true"> 
      <ImageButton 
       android:id="@+id/icon1" 
       android:onClick="method1" 
       android:layout_width="0dp" 
       android:layout_weight="1" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="100sp" 
       android:padding="20dp" 
       android:paddingTop="50dp" 
       android:adjustViewBounds="true" 
       android:layout_gravity="left" 
       android:gravity="center_horizontal" 
       android:scaleType = "fitCenter" 
       android:maxWidth="350dp" 
       android:maxHeight="350dp" 
       android:background="@color/white" 
       android:src="@drawable/icon1" /> 

      <ImageButton 
       android:id="@+id/icon2" 
       android:onClick="method2" 
       android:layout_width="0dp" 
       android:layout_weight= "1" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="100sp" 
       android:padding="20dp" 
       android:paddingTop="50dp" 
       android:layout_gravity="right" 
       android:gravity="center_horizontal" 
       android:adjustViewBounds="true" 
       android:maxWidth="350dp" 
       android:maxHeight="350dp" 
       android:scaleType="fitCenter" 
       android:background="@color/white" 
       android:src="@drawable/icon2" 
       /> 
     </LinearLayout> 
    </RelativeLayout> </LinearLayout> 
+0

Was ist, wenn ich eine Fußzeile hinzufügen möchte? Jetzt, da es match_parent ist, kann ich nichts darunter hinzufügen. Ich habe versucht, es zu wrap_content zu ändern und dann eine Fußzeile mit relativer_Layout hinzuzufügen, aber das führt wieder zu den Knöpfen – Jbv2

+0

@ Jbv2 Fügen Sie in diesem Fall nur diese Fußzeile in RelativeLayout hinzu (eine mit der Höhe match_parent), und richten Sie sie an unten als - 'android: alignParentBottom =" true "' – All

0

Sicherstellen, dass alle Eltern Layouts von Button ‚s eingestellt haben android:layout_height="match_parent"

Dann android:layout_centerVertical="true" zum RelativeLayout gelten.

+0

'android: layout_centerVertical =" true "' arbeitet mit den Kindern von RelativeLayout, nicht für das RelativeLayout selbst. – NarendraJi

0

Versuchen Sie, diese Art und Weise es

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:orientation="vertical" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:background="@android:color/white" 
    > 

    <Button 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:onClick="loadSomething" 
     android:padding="5sp" 
     android:layout_marginTop="5sp" 
     android:layout_marginBottom="5sp" 
     android:textAlignment="center" 
     android:text="Click here to load the site" 
     android:textColor="#ffffff" 
     android:textSize="16sp" 
     android:background="#ff00" 
     /> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:layout_gravity="center_vertical"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:layout_centerVertical="true" 
      android:layout_gravity="center"> 
      <ImageButton 
       android:id="@+id/icon1" 
       android:onClick="method1" 
       android:layout_width="0dp" 
       android:layout_weight="1" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="100sp" 
       android:padding="20dp" 
       android:paddingTop="50dp" 
       android:adjustViewBounds="true" 
       android:layout_gravity="left" 
       android:gravity="center_horizontal" 
       android:scaleType = "fitCenter" 
       android:maxWidth="350dp" 
       android:maxHeight="350dp" 
       android:background="#ffffff" 
       android:src="@mipmap/ic_launcher" /> 

      <ImageButton 
       android:id="@+id/icon2" 
       android:onClick="method2" 
       android:layout_width="0dp" 
       android:layout_weight= "1" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="100sp" 
       android:padding="20dp" 
       android:paddingTop="50dp" 
       android:layout_gravity="right" 
       android:gravity="center_horizontal" 
       android:adjustViewBounds="true" 
       android:maxWidth="350dp" 
       android:maxHeight="350dp" 
       android:scaleType="fitCenter" 
       android:background="#ffffff" 
       android:src="@mipmap/ic_launcher" 
       /> 
     </LinearLayout> 
    </RelativeLayout> 
</LinearLayout> 
1

Ihre Frage scheint wenig unklar funktioniert, aber hoffen, dieser Tipp hilft Ihnen

android: layout_gravity

  • android:layout_gravity wird eingestellt die Position eines Elements in seinem Elternteil (z ein Kind View in einem Layout). Unterstützt durch Linearlayout und FrameLayout

android: Gravitations

android:gravity verwendet wird, um die Position des Inhalts in einem Element zu setzen (beispielsweise einen Text in einem TextView).

zu bekommen und Idee, diese XML kopieren und verstehen, wie es

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:orientation="vertical" 
     android:layout_gravity="left" 
     android:gravity="center_vertical"> 

     <TextView 
      android:layout_width="@dimen/fixed" 
      android:layout_height="wrap_content" 
      android:text="@string/first" 
      android:background="@color/colorPrimary" 
      android:gravity="left"/> 

     <TextView 
      android:layout_width="@dimen/fixed" 
      android:layout_height="wrap_content" 
      android:text="@string/second" 
      android:background="@color/colorPrimary" 
      android:gravity="center"/> 

     <TextView 
      android:layout_width="@dimen/fixed" 
      android:layout_height="wrap_content" 
      android:text="@string/third" 
      android:background="@color/colorPrimary" 
      android:gravity="right"/> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:orientation="vertical" 
     android:layout_gravity="center" 
     android:gravity="center_vertical"> 

     <TextView 
      android:layout_width="@dimen/fixed" 
      android:layout_height="wrap_content" 
      android:text="@string/first" 
      android:background="@color/colorAccent" 
      android:gravity="left"/> 

     <TextView 
      android:layout_width="@dimen/fixed" 
      android:layout_height="wrap_content" 
      android:text="@string/second" 
      android:background="@color/colorAccent" 
      android:gravity="center"/> 

     <TextView 
      android:layout_width="@dimen/fixed" 
      android:layout_height="wrap_content" 
      android:text="@string/third" 
      android:background="@color/colorAccent" 
      android:gravity="right"/> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:orientation="vertical" 
     android:layout_gravity="right" 
     android:gravity="center_vertical"> 

     <TextView 
      android:layout_width="@dimen/fixed" 
      android:layout_height="wrap_content" 
      android:text="@string/first" 
      android:background="@color/colorPrimaryDark" 
      android:gravity="left"/> 

     <TextView 
      android:layout_width="@dimen/fixed" 
      android:layout_height="wrap_content" 
      android:text="@string/second" 
      android:background="@color/colorPrimaryDark" 
      android:gravity="center"/> 

     <TextView 
      android:layout_width="@dimen/fixed" 
      android:layout_height="wrap_content" 
      android:text="@string/third" 
      android:background="@color/colorPrimaryDark" 
      android:gravity="right"/> 

    </LinearLayout> 

</LinearLayout> 
0

ändern Layout wie dieser mit dem Wert Zentrum

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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:orientation="vertical" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:background="@color/white" 
    tools:context="com.example.max.testcase.MainActivity"> 

    <Button 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:onClick="loadSomething" 
     android:padding="5sp" 
     android:layout_marginTop="5sp" 
     android:layout_marginBottom="5sp" 
     android:textAlignment="center" 
     android:text="Click here to load the site" 
     android:textColor="@color/white" 
     android:textSize="16sp" 
     android:background="@color/blue" 
     /> 


    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:layout_gravity="center" 
     android:layout_centerVertical="true" 
     android:layout_alignParentStart="true"> 
     <ImageButton 
      android:id="@+id/icon1" 
      android:onClick="method1" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="100sp" 
      android:padding="20dp" 
      android:paddingTop="50dp" 
      android:adjustViewBounds="true" 
      android:layout_gravity="left" 
      android:gravity="center_horizontal" 
      android:scaleType = "fitCenter" 
      android:maxWidth="350dp" 
      android:maxHeight="350dp" 
      android:background="@color/white" 
      android:src="@drawable/icon1" /> 

     <ImageButton 
      android:id="@+id/icon2" 
      android:onClick="method2" 
      android:layout_width="0dp" 
      android:layout_weight= "1" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="100sp" 
      android:padding="20dp" 
      android:paddingTop="50dp" 
      android:layout_gravity="right" 
      android:gravity="center_horizontal" 
      android:adjustViewBounds="true" 
      android:maxWidth="350dp" 
      android:maxHeight="350dp" 
      android:scaleType="fitCenter" 
      android:background="@color/white" 
      android:src="@drawable/icon2" 
      /> 
    </LinearLayout> 

</RelativeLayout> 
0

hinzufügen layout_gravity und Schwerkraft-Attribut im Wurzel linearen Layout arbeitet vertikal, es wird Lass alle seine Kinder in der Mitte vertikal ausrichten. Hinweis: make kind height wrap_content, um dies zu erreichen.Wenn Ihre Kinderhöhe gleich ist, wird dies nicht funktionieren.

0
A simple layout design for center two image button 

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


    <Button 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:onClick="loadSomething" 
     android:layout_margin="20dp" 
     android:textAlignment="center" 
     android:text="Click here to load the site" 
     android:textColor="@color/WhiteSmoke" 
     android:textSize="16sp" 
     android:background="@color/Blue" 
     /> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_centerHorizontal="true"> 


     <ImageButton 
      android:id="@+id/icon1" 
      android:onClick="method1" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:layout_height="wrap_content" 
      android:padding="20dp" 
      android:adjustViewBounds="true" 
      android:scaleType = "fitCenter" 
      android:maxWidth="350dp" 
      android:maxHeight="350dp" 
      android:background="@color/WhiteSmoke" 
      android:src="@mipmap/minus_icon" /> 

     <ImageButton 
      android:id="@+id/icon2" 
      android:onClick="method2" 
      android:layout_width="0dp" 
      android:layout_weight= "1" 
      android:layout_height="wrap_content" 
      android:padding="20dp" 
      android:adjustViewBounds="true" 
      android:maxWidth="350dp" 
      android:maxHeight="350dp" 
      android:scaleType="fitCenter" 
      android:background="@color/WhiteSmoke" 
      android:src="@mipmap/plus_icon" 
      /> 

    </LinearLayout> 
</RelativeLayout> 
Verwandte Themen