gridlayout 2列居中 - 水平

时间:2016-07-08 02:49:54

标签: android android-layout alignment android-gridlayout

我想让布局由2列宽度相等的列组成,列中的元素居中

代码

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

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#75ddff"
    android:columnCount="2"
    android:layout_gravity="center"
    tools:context="com.example.demo.MainActivity">


    <de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/calculator_view"
        android:layout_width="110dp"
        android:layout_height="110dp"
        android:layout_column="0"
        android:layout_columnWeight="1"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="20dp"
        android:layout_row="0"
        android:src="@drawable/calc"
        app:civ_border_color="#00C3C9"
        app:civ_border_width="0dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_columnWeight="1"
        android:layout_gravity="fill_horizontal|center_horizontal"
        android:layout_row="1"
        android:gravity="center"
        android:text="CALC"
        android:textSize="25dp" />


    <de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="110dp"
        android:layout_height="110dp"
        android:layout_row="0"
        android:layout_column="1"
        android:layout_columnWeight="1"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="20dp"
        android:src="@drawable/statst"
        app:civ_border_color="#ffffff"
        app:civ_border_width="0dp" />

    <TextView
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_columnWeight="1"
        android:layout_gravity="fill_horizontal|center_horizontal"
        android:layout_row="1"
        android:gravity="center"
        android:text="Statistics"
        android:textSize="25dp" />

    <de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="110dp"
        android:layout_height="110dp"
        android:layout_column="0"
        android:layout_columnWeight="1"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="20dp"
        android:layout_row="2"
        android:src="@drawable/reporting_icon1"
        app:civ_border_color="#00C3C9"
        app:civ_border_width="0dp" />

    <TextView
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_columnWeight="1"
        android:layout_gravity="fill_horizontal|center_horizontal"
        android:layout_row="3"
        android:gravity="center"
        android:text="History"
        android:textSize="25dp" />

    <de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="110dp"
        android:layout_height="110dp"
        android:layout_row="2"
        android:layout_column="1"
        android:layout_columnWeight="1"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="20dp"
        android:src="@drawable/hashtag"
        app:civ_border_color="#ffffff"
        app:civ_border_width="0dp" />

    <TextView
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_columnWeight="1"
        android:layout_gravity="fill_horizontal|center_horizontal"
        android:layout_row="3"
        android:gravity="center"
        android:text="Codes"
        android:textSize="25dp" />

    <de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="110dp"
        android:layout_height="110dp"
        android:layout_column="0"
        android:layout_columnWeight="1"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="20dp"
        android:layout_row="4"
        android:layout_columnSpan="1"
        android:src="@drawable/documents"
        app:civ_border_color="#00C3C9"
        app:civ_border_width="0dp" />

    <TextView
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_columnWeight="1"
        android:layout_gravity="fill_horizontal|center_horizontal"
        android:layout_row="5"
        android:gravity="center"
        android:text="Plans"
        android:textSize="25dp" />

</GridLayout>

结果 两列不居中 enter image description here

我使用过CircleImageview

dependencies {
    ...
    compile 'com.android.support:support-v4:23.1.1'
    compile 'de.hdodenhof:circleimageview:2.0.0'
    compile 'com.android.support:design:23.1.1'
}

2 个答案:

答案 0 :(得分:2)

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    orientation="horizontal">
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        orientation="vertical">
    </LinearLayout>
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        orientation="vertical">
    </LinearLayout>
</LinearLayout>

两个内部线性布局将具有完全相同的宽度。因为layout_weight="1"。这是你的两个专栏。

答案 1 :(得分:0)

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:columnCount="2"
    android:orientation="horizontal" >

    <Button android:text="1" />
    <Button android:text="2" />
    <Button android:text="3" />
    <Button android:text="4" />
    <Button android:text="5" />
    <Button android:text="6" />

</GridLayout>