【问题标题】:Android: Button Creation in RowAndroid:在行中创建按钮
【发布时间】:2013-03-23 07:58:36
【问题描述】:

它在单行中创建动态按钮

 final LinearLayout layoutshape = (LinearLayout) findViewById(R.id.linearshape);
  a = new Button[10];
  for (int i = 0; i < 10; i++) {
      a[i] = new Button(this);
      a[i].setText(""+i);
      a[i].setId(i);
      a[i].setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
                                               LayoutParams.WRAP_CONTENT));
      a[i].setBackgroundResource(R.drawable.background);
     layoutshape.addView(a[i]);
    }

但我想让它分成三行。 例如:如果我有 30 个按钮,那么它应该显示在第一行的 10 个按钮中,然后是下一个 第二行10个,第三行10个

o/p 按钮:

b1 b2 b3 b4 b5

b6 b7 b8 b9 b10

b11 b12 b13 b14 b15

【问题讨论】:

  • 为您的案例尝试 gridview。
  • 线性中的任何其他可能性?
  • 或者你可以做tablelayout

标签: java android android-layout android-button


【解决方案1】:

首先将主布局(布局形状)的方向设置为垂直。

for (int i = 0; i < i/10; i++) {

LinearLayout row = new LinearLayout(this);

将行的方向设置为水平。

for (int i = 0; i < 30; i++) {

  a[i] = new Button(this);
  a[i].setText(""+i);
  a[i].setId(i);
  a[i].setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
                                           LayoutParams.WRAP_CONTENT));
  a[i].setBackgroundResource(R.drawable.background);
 row.addView(a[i]);
}
layoutshape.addView(row);
}

【讨论】:

  • @Mj 在 3 行中三次创建相同的按钮
  • @arshad 你说得对,第二个循环应该是 for(i=0;i
【解决方案2】:

30 个按钮看起来像一个键盘: http://developer.android.com/reference/android/inputmethodservice/Keyboard.html 并且键盘可以通过 xml 创建(参见 SDK 中的 SoftKeyboard 示例,samples/android-10/SoftKeyboard 子目录)。

如果您真的需要 3 行按钮,我的建议是在运行时填充 3 个水平线性布局。但请注意,屏幕尺寸各不相同,手机上的好东西在平板电脑上可能看起来很丑。

【讨论】:

    【解决方案3】:

    您至少需要n LinearLayout 其中n 是您的行数。如果您真的想使用LinearLayout,请使用以下LayoutParams 添加您的按钮:

    new LinearLayout.LayoutParams(0,LayoutParams.WRAP_CONTENT, 1/numButtonsInRow);

    1/numButtonsInRow 是按钮的重量。例如,如果您连续有 10 个按钮,则每个按钮的权重为 0.1。如果您的 Layout 是水平的,请将其 width 设置为 0,如果是垂直的,请将其 height 设置为 0。

    在您的情况下,您可能应该使用GridLayoutTableLayout

    【讨论】:

      【解决方案4】:

      在“layoutshape”LinearLayout 中创建 3 个 LinearLayout,方向为垂直。 然后将按钮添加到内部线性布局中。

      【讨论】:

      • 是的!不得不做。但寻找任何其他方式需要创建 3 个布局
      猜你喜欢
      • 1970-01-01
      • 2015-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-25
      • 2015-09-18
      相关资源
      最近更新 更多