java - 当模拟器处于水平位置时,动态创建的 GridLayout 方向不起作用
问题描述
我正在使用 9 个按钮动态创建 GridLayout。但是,当我将模拟器更改为水平位置时,我为此 GridLayout 设置的水平方向不起作用。这是我的代码 -
import android.os.Bundle;
import android.app.Activity;
import android.view.Gravity;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.GridLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.Toast;
import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
public class MainActivity extends Activity {
GridLayout gl;
Button[] buttons;
int item;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gl = new GridLayout(MainActivity.this);
gl.setLayoutParams(new LayoutParams
(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
gl.setOrientation(GridLayout.HORIZONTAL);
gl.setColumnCount(3);
gl.setRowCount(3);
buttons = new Button[9];
for(int i=0;i<9;i++)
{
buttons[i] = new Button(MainActivity.this);
LayoutParams params = new TableRow.LayoutParams(WRAP_CONTENT, WRAP_CONTENT,1f);
buttons[i].setLayoutParams(params);
buttons[i].setHeight(WRAP_CONTENT);
buttons[i].setWidth(WRAP_CONTENT);
buttons[i].setGravity(Gravity.CENTER);
buttons[i].setId(i+1);
int s = buttons[i].getId();
buttons[i].setText(Integer.toString(s));
buttons[i].setTextSize(25);
buttons[i].setWidth(352);
buttons[i].setHeight(552);
buttons[i].setPadding(50,50,50,50);
gl.addView(buttons[i]);
}
setContentView(gl);
}
}
由于我没有使用 activity_main.xml 来创建 GridLayout,因此我无法在 XML 中设置方向。因此将其设置在 MainActivity.java 中
gl.setOrientation(GridLayout.HORIZONTAL);
此外,对于每个动态创建的按钮,我无法将 layout_gravity 设置为填充。因此这样做 -
buttons[i].setGravity(Gravity.CENTER);
解决方案
推荐阅读
- jquery - jQuery 简单标签内容
- c# - C# HostBuilder 日志记录配置。非通用记录器为空
- java - OpenCV Java 在 Mat 上执行算术运算
- excel - 如何计算工作表中图表的数量?
- unit-testing - 使用 JEST 和 axios-mock-adapter 测试基于 axios 的 API 时如何修复“无法验证第一个证书”?
- c++ - 与位域联合为位域成员提供了意想不到的价值
- c - 在子窗口中记录/打印
- django - I've got this error in django : Could not resolve URL for hyperlinked relationship using view name "users-detail"
- java - Excel not showing Euro symbol correctly in generated CSV file
- python - 在 Python 中从排序的 JSON 文件中选择一个 str