基本上,我有一个 View 需要拆分为 2x4 网格,每个部分的大小相等(即每行占屏幕高度的 25%,每列占屏幕宽度的 50% ).
我的方法是使用带有两个权重为 0.5 的内部 LinearLayout 的水平 LinearLayout,然后在每个 LinearLayout 中将子项的权重设置为 0.25,以便每个子项占据屏幕的 25%。
虽然这似乎可行,但这显然对性能非常不利(请参阅此线程以了解 Why are nested weights bad for performance? Alternatives? 的原因)
是否有任何替代方案可以实现这一目标?我环顾四周,但找不到解决此问题的纯 XML 解决方案。
请参阅下面的代码示例,了解我如何设置 LinearLayouts 及其子项
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:baselineAligned="false"
android:weightSum="1.0"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="0.5"
android:weightSum="1.0">
<ImageView
android:layout_width="wrap_content"
android:layout_height="0dip"
android:src="@drawable/example"
android:layout_gravity="center_horizontal"
android:layout_weight="0.25"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="0dip"
android:src="@drawable/example"
android:layout_gravity="center_horizontal"
android:layout_weight="0.25"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="0dip"
android:src="@drawable/example"
android:layout_gravity="center_horizontal"
android:layout_weight="0.25"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="0dip"
android:src="@drawable/example"
android:layout_gravity="center_horizontal"
android:layout_weight="0.25"
/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="0.5"
android:weightSum="1.0">
<ImageView
android:layout_width="wrap_content"
android:layout_height="0dip"
android:src="@drawable/example"
android:layout_gravity="center_horizontal"
android:layout_weight="0.25"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="0dip"
android:src="@drawable/example"
android:layout_gravity="center_horizontal"
android:layout_weight="0.25"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="0dip"
android:src="@drawable/example"
android:layout_gravity="center_horizontal"
android:layout_weight="0.25"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="0dip"
android:src="@drawable/example"
android:layout_gravity="center_horizontal"
android:layout_weight="0.25"
/>
</LinearLayout>
</LinearLayout>
最佳答案
您可能想提供 GridLayout旋转。
还有一个 library这使其适用于 1.6+ 设备。
关于android - 在 Android 中创建类似网格的布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10484365/