android - GridLayout 获取适合区域的按钮

标签 android android-gridlayout

我正在为安卓设计一款游戏。该代码已经可以使用,但我在 UI 方面遇到了一些问题。所有的布局类型都很困惑,而且似乎从来没有对它们的属性进行有用的定义。本质上,我希望让以编程方式添加的按钮干净地填满屏幕底部的整个空间。可能有 2 到 6 个按钮,具体取决于玩家选择的难度设置。但最终,我什至会满足于在这里均匀地适合所有 6 个按钮的布局。我不确定为什么这没有填满 .xml 设计器指示的整个区域。我已尝试在下面提供相关部分,但很乐意根据要求添加其他详细信息。

Game Image

这是网格布局的初始 XML

  <GridLayout
        android:layout_width="match_parent"
        android:layout_height="182dp"
        android:rowCount="2"
        android:columnCount="3"
        android:id="@+id/buttonsLayout"
        android:layout_gravity="center"></GridLayout>

GridLayout

并在此处设置按钮:

private static void setButtons() {
    for (int i = 0; i < GlobalValues.numberOfColors; i++) {
        Button b = new Button(mainActivity);
        ImageView IV = new ImageView(mainActivity);
        switch (i) {
            case 0:
                IV.setImageResource(R.drawable.red);
                b.setId(i);
                break;
            case 1:
                IV.setImageResource(R.drawable.green);
                b.setId(i);
                break;
            case 2:
                IV.setImageResource(R.drawable.blue);
                b.setId(i);
                break;
            case 3:
                IV.setImageResource(R.drawable.yellow);
                b.setId(i);
                break;
            case 4:
                IV.setImageResource(R.drawable.purple);
                b.setId(i);
                break;
            case 5:
                IV.setImageResource(R.drawable.cyan);
                b.setId(i);
                break;
            default:
                break;
        }
        b.setBackgroundDrawable(IV.getDrawable());
        b.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View view) {
                UI.UpdateColor(view);
            }
        });

        buttonsLayout.addView(b);
    }
}

最后,这是它目前的样子。它显然没有很好地利用整个区域,我不确定为什么。

最佳答案

Align Buttons in GridLayout可能会帮助你。我知道这不完全是你的情况,但你说现在它足以解决 6 个按钮,所以这可能有效。顺便说一句,如果我是你,我会根据按钮的数量使用不同的布局来使它们美观。但从 6 开始才是正确的方式。

关于android - GridLayout 获取适合区域的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34884818/

相关文章:

android - GridLayout - 对齐元素

android - 以编程方式在 GridLayout 中设置 layout_column 和 layout_row

android - Android 中的 GridView 和 GridLayout

java - 以编程方式添加时如何为 GridLayout 子项设置 layout_columnWeight?

android - 如何在移动设备上为用户代理使用元重定向

android - 从 RecyclerView 中删除一个项目(ViewHolder 有 onClick 但适配器有数据集)

java - 为什么文本未显示在 textView_1 中且运算符不起作用

android - 如何在设置/无线设置下调用 "EthernetSettings"?

android - 使用权重属性动态创建复选框

android - 由 IntentService 通知的 Activity