android-layout - Android GridView:以父级为中心的两个相等宽度和高度的列
问题描述
这么简单的要求怎么可能做不到呢?
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="3">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="6dp"
android:layout_weight="1"
android:orientation="vertical">
<GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="18dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_weight="1"
android:paddingLeft="12dp"
android:background="@drawable/box_background"
android:columnCount="2"
>
<TextView
android:layout_gravity="center"
android:padding="4dp"
android:text="text"
android:textSize="24dp"
/>
<TextView
android:layout_gravity="center"
android:padding="4dp"
android:text="text"
android:textSize="24dp"
/>
<TextView
android:layout_gravity="center"
android:padding="4dp"
android:text="text"
android:textSize="24dp"
/>
<TextView
android:layout_gravity="center"
android:padding="4dp"
android:text="text"
android:textSize="24dp"
/>
<TextView
android:layout_gravity="center"
android:padding="4dp"
android:text="text"
android:textSize="24dp"
/>
<TextView
android:layout_gravity="center"
android:padding="4dp"
android:text="text"
android:textSize="24dp"
/>
</GridLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="#fff"
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:text="Box title" />
</RelativeLayout>
</LinearLayout>
产生这种垃圾:
WTF是第三排上面的空隙吗?
是否有可能——我发誓不是——得到两个居中的列,行间距均匀?
解决方案
使用此添加 android:layout_columnWeight="1"
到 gridlayout 儿童
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="3">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="6dp"
android:layout_weight="1"
android:orientation="vertical">
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/grid_layout"
android:columnCount="2"
android:layout_below="@id/title"
android:orientation="horizontal"
android:useDefaultMargins="true"
android:alignmentMode="alignBounds"
>
<TextView
android:layout_gravity="center_horizontal"
android:padding="4dp"
android:gravity="center"
android:text="text"
android:layout_columnWeight="1"
android:textSize="20sp"
/>
<TextView
android:layout_gravity="center_horizontal"
android:padding="4dp"
android:gravity="center"
android:text="text"
android:layout_columnWeight="1"
android:textSize="20sp"
/>
<TextView
android:layout_gravity="center_horizontal"
android:padding="4dp"
android:gravity="center"
android:text="text"
android:layout_columnWeight="1"
android:textSize="20sp"
/>
<TextView
android:layout_gravity="center_horizontal"
android:padding="4dp"
android:gravity="center"
android:text="text"
android:layout_columnWeight="1"
android:textSize="20sp"
/>
<TextView
android:layout_gravity="center_horizontal"
android:padding="4dp"
android:gravity="center"
android:text="text"
android:layout_columnWeight="1"
android:textSize="20sp"
/>
<TextView
android:layout_gravity="center_horizontal"
android:padding="4dp"
android:gravity="center"
android:text="text"
android:layout_columnWeight="1"
android:textSize="20sp"
/>
</GridLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="#fff"
android:paddingLeft="6dp"
android:id="@+id/title"
android:textSize="16sp"
android:paddingRight="6dp"
android:text="Box title" />
</RelativeLayout>
</LinearLayout>
</LinearLayout>
输出 :
推荐阅读
- excel - “VBA Excel 365 Home Insider/Beta”的错误 2029 => 函数“Application.Evaluate”,带有双递归的 lambda 表达式(斐波那契)
- r - 如何在R中滞后数据框的多个特定列
- c# - C#中的自定义4位数据类型
- macos - 如何在不打开新的 emacs 实例的情况下从终端打开 emacs 中的文件?
- mongodb - MongoDB:聚合时填充 $group 中的引用?
- macos - 由于 libSystem.dylib,程序集的链接失败
- javascript - ReactJS TypeError:即使已定义,也无法将属性“innerHTML”设置为null
- python - 从 numpy 数组保存图像会出错
- javascript - 如何区分回调和多个组件
- c# - 是否可以为 C# 字符串实习生池设置容量?