我想制作相对布局的线性布局中心

时间:2017-05-03 09:40:43

标签: android android-layout layout

我有RelativeLayout,因为我有一个LinearLayout,我在ImageButton放置了2 LinearLayout,我真正想要的是,LinearLayout应该在RelativeLayout的中心(水平),我该怎么做?

  <RelativeLayout
    android:id="@+id/second"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="bottom"
    android:layout_weight=".1"
    android:background="@color/test"
    android:orientation="horizontal">



    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:layout_below="@+id/view"
        android:orientation="horizontal"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_centerHorizontal="true">


        <ImageButton
            android:id="@+id/imageButton"
            style="@style/Base.Widget.AppCompat.Button.Borderless"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

         android:layout_gravity="bottom"
            android:src="?attr/actionModeShareDrawable" />

        <ImageButton
            android:id="@+id/star"
            style="@style/Base.Widget.AppCompat.Button.Borderless"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:layout_gravity="bottom"
            android:src="@android:drawable/btn_star" />


    </LinearLayout>

</RelativeLayout>

8 个答案:

答案 0 :(得分:3)

在LinearLayout中添加android:layout_centerInParent="true",如下所示:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:layout_below="@+id/view"
        android:orientation="horizontal"
        android:layout_centerInParent="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_centerHorizontal="true">

        <ImageButton
            android:id="@+id/imageButton"
            style="@style/Base.Widget.AppCompat.Button.Borderless"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"    
            android:layout_gravity="bottom"
            android:src="?attr/actionModeShareDrawable" />

        <ImageButton
            android:id="@+id/star"
            style="@style/Base.Widget.AppCompat.Button.Borderless"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"    
            android:layout_gravity="bottom"
            android:src="@android:drawable/btn_star" />    

    </LinearLayout>

答案 1 :(得分:2)

android:layout_centerInParent="true"添加到LinearLayout

答案 2 :(得分:1)

它可能对你有帮助

<?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="wrap_content"
        android:layout_height="match_parent"
        android:layout_centerInParent="true"
        android:weightSum="2">

        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1" />

        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1" />


    </LinearLayout>


</RelativeLayout>

答案 3 :(得分:1)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/second"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight=".1"
    android:background="@color/test"
    android:orientation="horizontal">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/view"
        android:layout_centerHorizontal="true"
        android:layout_centerInParent="true"
        android:gravity="center_horizontal"
        android:orientation="horizontal">


        <ImageButton
            android:id="@+id/imageButton"
            style="@style/Base.Widget.AppCompat.Button.Borderless"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:src="?attr/actionModeShareDrawable" />

        <ImageButton
            android:id="@+id/star"
            style="@style/Base.Widget.AppCompat.Button.Borderless"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:layout_gravity="bottom"
            android:src="@android:drawable/btn_star" />


    </LinearLayout>

</RelativeLayout>

使用此代码可以解决您的问题。

答案 4 :(得分:1)

为linearlayout添加android:layout_centerInParent="true"。权重在RelativeLayout中不起作用,因此您可以删除它。

答案 5 :(得分:1)

添加

android:layout_centerInParent="true"

在您的LinearLayout中,您可能还想更改LinearLayout的宽度

android:layout_width="wrap_content"

因此图像按钮水平居中

答案 6 :(得分:1)

为linearlayout插入android:layout_centerInParent="true"。重量不会在RelativeLayout中起作用,因此您可以删除它。

答案 7 :(得分:0)

android:layout_centerInParent="true"用于LinearLayout。