如何在 GridLayout 的边界内调整视图?
How to fit views inside bounds of GridLayout?
我试图在 GridLayout 中放置一个 4x6 的按钮网格,但有些按钮被放置在布局的边界之外并且不知道如何修复它。基本上我希望所有按钮视图都缩小以适合网格布局。
<GridLayout
android:id="@+id/grid_buttons"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="6"
android:rowCount="4">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_row="0"
android:text="@string/button_1"/>
<Button
android:layout_weight="1"
android:layout_column="1"
android:layout_row="0"
android:text="@string/button_2"/>
<Button
android:layout_weight="1"
android:layout_column="2"
android:layout_row="0"
android:text="@string/button_3"/>
<Button
android:layout_weight="1"
android:layout_column="0"
android:layout_row="1"
android:text="@string/button_4"/>
<Button
android:layout_weight="1"
android:layout_column="1"
android:layout_row="1"
android:text="@string/button_5"/>
<Button
android:layout_weight="1"
android:layout_column="2"
android:layout_row="1"
android:text="@string/button_6"/>
<Button
android:layout_weight="1"
android:layout_column="0"
android:layout_row="2"
android:text="@string/button_7"/>
<Button
android:layout_weight="1"
android:layout_column="1"
android:layout_row="2"
android:text="@string/button_8"/>
<Button
android:layout_weight="1"
android:layout_column="2"
android:layout_row="2"
android:text="@string/button_9"/>
<Button
android:layout_weight="1"
android:layout_column="1"
android:layout_row="3"
android:text="@string/button_0"/>
<Button
android:layout_weight="1"
android:layout_column="3"
android:layout_row="0"
android:text="@string/button_A"/>
<Button
android:layout_weight="1"
android:layout_column="4"
android:layout_row="0"
android:text="@string/button_B"/>
<Button
android:layout_weight="1"
android:layout_column="5"
android:layout_row="0"
android:text="@string/button_C"/>
<Button
android:layout_weight="1"
android:layout_column="3"
android:layout_row="1"
android:text="@string/button_D"/>
<Button
android:layout_weight="1"
android:layout_column="4"
android:layout_row="1"
android:text="@string/button_E"/>
<Button
android:layout_weight="1"
android:layout_column="5"
android:layout_row="1"
android:text="@string/button_F"/>
</GridLayout>
而不是 GridLayout
,您可以通过使用具有 XML 属性 android:layout_weight
和 android:weightSum
的多个 LinearLayout
轻松实现您想要的结果。
这是您的 4*6
网格。只需根据您的需要更改按钮文本即可。
<?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:orientation="vertical"
android:weightSum="4">
<!-- First Row -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:layout_weight="1"
android:weightSum="6">
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="1"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="2"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="3"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="4"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="5"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="6"/>
</LinearLayout>
<!-- Second Row -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:layout_weight="1"
android:weightSum="6">
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="7"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="8"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="9"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="10"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="11"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="12"/>
</LinearLayout>
<!-- Third Row -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:layout_weight="1"
android:weightSum="6">
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="13"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="14"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="15"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="16"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="17"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="18"/>
</LinearLayout>
<!-- Fourth Row -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:layout_weight="1"
android:weightSum="6">
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="19"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="20"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="21"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="22"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="23"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="24"/>
</LinearLayout>
希望对你有所帮助~
我试图在 GridLayout 中放置一个 4x6 的按钮网格,但有些按钮被放置在布局的边界之外并且不知道如何修复它。基本上我希望所有按钮视图都缩小以适合网格布局。
<GridLayout
android:id="@+id/grid_buttons"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="6"
android:rowCount="4">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_row="0"
android:text="@string/button_1"/>
<Button
android:layout_weight="1"
android:layout_column="1"
android:layout_row="0"
android:text="@string/button_2"/>
<Button
android:layout_weight="1"
android:layout_column="2"
android:layout_row="0"
android:text="@string/button_3"/>
<Button
android:layout_weight="1"
android:layout_column="0"
android:layout_row="1"
android:text="@string/button_4"/>
<Button
android:layout_weight="1"
android:layout_column="1"
android:layout_row="1"
android:text="@string/button_5"/>
<Button
android:layout_weight="1"
android:layout_column="2"
android:layout_row="1"
android:text="@string/button_6"/>
<Button
android:layout_weight="1"
android:layout_column="0"
android:layout_row="2"
android:text="@string/button_7"/>
<Button
android:layout_weight="1"
android:layout_column="1"
android:layout_row="2"
android:text="@string/button_8"/>
<Button
android:layout_weight="1"
android:layout_column="2"
android:layout_row="2"
android:text="@string/button_9"/>
<Button
android:layout_weight="1"
android:layout_column="1"
android:layout_row="3"
android:text="@string/button_0"/>
<Button
android:layout_weight="1"
android:layout_column="3"
android:layout_row="0"
android:text="@string/button_A"/>
<Button
android:layout_weight="1"
android:layout_column="4"
android:layout_row="0"
android:text="@string/button_B"/>
<Button
android:layout_weight="1"
android:layout_column="5"
android:layout_row="0"
android:text="@string/button_C"/>
<Button
android:layout_weight="1"
android:layout_column="3"
android:layout_row="1"
android:text="@string/button_D"/>
<Button
android:layout_weight="1"
android:layout_column="4"
android:layout_row="1"
android:text="@string/button_E"/>
<Button
android:layout_weight="1"
android:layout_column="5"
android:layout_row="1"
android:text="@string/button_F"/>
</GridLayout>
而不是 GridLayout
,您可以通过使用具有 XML 属性 android:layout_weight
和 android:weightSum
的多个 LinearLayout
轻松实现您想要的结果。
这是您的 4*6
网格。只需根据您的需要更改按钮文本即可。
<?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:orientation="vertical"
android:weightSum="4">
<!-- First Row -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:layout_weight="1"
android:weightSum="6">
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="1"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="2"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="3"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="4"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="5"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="6"/>
</LinearLayout>
<!-- Second Row -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:layout_weight="1"
android:weightSum="6">
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="7"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="8"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="9"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="10"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="11"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="12"/>
</LinearLayout>
<!-- Third Row -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:layout_weight="1"
android:weightSum="6">
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="13"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="14"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="15"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="16"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="17"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="18"/>
</LinearLayout>
<!-- Fourth Row -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:layout_weight="1"
android:weightSum="6">
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="19"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="20"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="21"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="22"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="23"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="24"/>
</LinearLayout>
希望对你有所帮助~