使用java 语言写一个android系统的弹窗代码,弹窗里面横向摆放多个按钮,当按钮数量大于5个时候,进行换行
时间: 2023-05-22 08:07:19 浏览: 190
可以使用LinearLayout和Button来实现弹窗里面横向摆放多个按钮,当按钮数量大于5个时进行换行的效果。示例代码如下:
```java
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("弹窗标题");
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
// 按钮数量
int buttonCount = 7;
// 一行最多显示的按钮数量
int maxButtonsPerLine = 5;
// 实际需要显示的行数
int lines = buttonCount % maxButtonsPerLine == 0 ? buttonCount / maxButtonsPerLine : buttonCount / maxButtonsPerLine + 1;
// 根据按钮数量和一行最多显示的按钮数量,动态创建需要的Button,并添加到LinearLayout中
for (int i = 0; i < buttonCount; i++) {
Button button = new Button(this);
button.setText("按钮" + (i + 1));
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
);
// 如果不是第一行,设置topMargin
if (i >= maxButtonsPerLine) {
layoutParams.topMargin = 16;
}
// 如果是每行最后一个按钮,设置rightMargin和weight
if ((i + 1) % maxButtonsPerLine == 0) {
layoutParams.rightMargin = 0;
layoutParams.weight = 1;
} else {
layoutParams.rightMargin = 16;
}
button.setLayoutParams(layoutParams);
layout.addView(button);
}
// 设置弹窗的布局
builder.setView(layout);
AlertDialog dialog = builder.create();
dialog.show();
```
这段代码中,通过循环创建Button,并使用LayoutParams设置每个Button的位置,当处理到每行最后一个按钮时,设置button的weight为1,使得可以自适应屏幕宽度。
阅读全文