当前位置: 首页 > 知识库问答 >
问题:

如何在android xml布局中将9个按钮排成3行?

杜嘉慕
2023-03-14

我想做一个井字游戏(Android版)。我想让所有的9个按钮根据设备的宽度和高度自动调整大小,并将它们均匀地放置在一个3*3的网格中。但是我现在只能为他们的尺寸设定数量。有人能告诉我如何让他们使用父母的高度和宽度,并计算他们的大小吗?

另外,我现在使用网格布局。这是我应该用于井字游戏的最佳布局吗?

谢谢。

共有3个答案

扈瑞
2023-03-14

可以用GridView。它会平均分配按钮。

<GridView
    android:id="@+id/gridview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:horizontalSpacing="5dp"
    android:numColumns="3"
    android:stretchMode="columnWidth"
    android:verticalSpacing="5dp" />`

在你的活动中使用这个代码

网格视图 网格视图;

static final String[] numbers = new String[] { 
"A", "B", "C",
    "D", "E", "F", 
    "G", "H", "I"};

@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

gridView = (GridView) findViewById(R.id.gridview);

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_list_item_1, numbers);

gridView.setAdapter(adapter);

gridView.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View v,
        int position, long id) {
       Toast.makeText(getApplicationContext(),
        ((TextView) v).getText(), Toast.LENGTH_SHORT).show();
    }
});


}
洪弘亮
2023-03-14
<LinearLayout
android:weightSum = 1.0
>
  <LinearLayout
    android:weightSum=1.0
    android:layout_weight = 0.33
    android:orientation = horizontal
  >
    <Button
      android:layout_weight=0.33
    />
    <Button
      android:layout_weight=0.33
    />
   <Button
     android:layout_weight=0.33
   />
 </LinearLayout>
  //Similar to above LinearLayout of Buttons add 2 more LinearLayouts
刘元青
2023-03-14

使用线性布局Android:重量萨姆Android:layout_weight

编辑

示例:

<?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="3" >

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

        <ImageButton
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:src="@drawable/ic_launcher" />

        <ImageButton
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:src="@drawable/ic_launcher" />

        <ImageButton
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:src="@drawable/ic_launcher" />
    </LinearLayout>

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

        <ImageButton
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:src="@drawable/ic_launcher" />

        <ImageButton
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:src="@drawable/ic_launcher" />

        <ImageButton
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:src="@drawable/ic_launcher" />
    </LinearLayout>

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

        <ImageButton
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:src="@drawable/ic_launcher" />

        <ImageButton
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:src="@drawable/ic_launcher" />

        <ImageButton
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:src="@drawable/ic_launcher" />
    </LinearLayout>

</LinearLayout>
 类似资料:
  • 我正在尝试在一个布局中3行中的9个按钮。但是,由于某些按钮包含的文本比其他按钮多,因此按钮不适合。现在看起来像这样: 我试图将每一行放入<code>线性布局 我也尝试过使用这个解决方案,但它没有解决我的问题。

  • 问题内容: 我正在Twitter Bootstrap中构建表单,但是将按钮居中于表单输入下方时出现问题。我已经尝试过将类应用于按钮,但这没有用。我该如何解决? 这是我的代码。 问题答案: 用“文本中心”类在div中包装Button。 只需更改此: 对此: 编辑 作为 BootstrapV4 ,滴入#19102赞成

  • 问题内容: 我想在我的 底栏布局的中间添加Facebook Messenger,例如超大按钮,但困惑如何添加。 我正在使用ahbottomnavigation库来制作我的底栏。 问题答案: 我只是试图使其简单而不是专业类型。看这里: BottomSheetLayout文件- : ActivityLayout - Output: 根据您的想法改变价值和设计。 示例仅是一个演示,并不包含OP要求的确切

  • 问题内容: 我正在尝试一些非常基本的东西:我列出了5个按钮。它们位于FlowLayout中,通常的想法是,一旦我单击一个,它将消失,而其他应该相应地重新排序。 现在,如果我调用setVisible(false),该按钮将变为不可见,但它仍在Layoutmanager中占据它的空间。 有什么办法可以在隐藏它的同时将Button保留在JPanel中,以便它不会被Layout拾取? 更新:: 感谢您提供

  • 我正在推特引导中构建一个表单,但是我在表单输入下方的按钮居中时遇到了问题。我已经尝试将类应用于按钮,但没有成功。我该如何解决这个问题? 这是我的密码。

  • 我在 Kotlin 中有两个布局,每个布局都有一个按钮,我只想在两者之间切换。所以我在两者中都添加了一个OnClickListener 好吧,它实际上正在工作。我可以转到第二个布局并切换回第一个布局,但我无法再次打开第二个布局! 我认为在更改回主视图后必须重新定义监听器,因此我创建了两个单独的函数来设置视图。 当我试图在Java中解决同样的问题时,这种方法是有效的,但是在Kotlin中,我仍然只能