我正在创建一个由10X10单元格组成的表,它(在创建所有单元格之后)将不适合它的父单元。

如您所见,每个表格单元格都是一个以"Test“作为文本的按钮,我无法使这个10X10网格扩展以填充其父单元格(视图水平退出屏幕,不会垂直填充)。
我正在以编程方式创建每个单元格,如下所示:
val table = findViewById<TableLayout>(R.id.table)
for (i in 0..9) { //10 rows inside the table
val row = TableRow(this)
for (j in 0..9) { //10 cells inside every row
val cell = Button(this)
cell.layoutParams = TableRow.LayoutParams(
TableRow.LayoutParams.WRAP_CONTENT,
TableRow.LayoutParams.WRAP_CONTENT
)
cell.text = "test"
cell.setTextColor(Color.RED)
cell.setBackgroundColor(Color.WHITE)
cell.setPadding(0, 0, 0, 0)
row.addView(cell)
}
table.addView(row)
}layoutParams的方式,我试图像这样改变每个单元格的尺寸:
cell.layoutParams = TableRow.LayoutParams( //table =包含所有单元格表/5的视图,//使单元格宽度=父宽度表的20%。高度/10//使单元格height=为父单元格高度的10% )由于某种原因,这使得整个表消失了,并且将布局参数设置为MATCH_PARENT 与 WRAP_CONTENT**.**具有相同的效果。
我检查了通过编程方式设置LayoutParams和LayoutParams,但是我还没有找到答案。
我做错了什么使我的表消失了,以及如何使单元格符合表的大小?
发布于 2019-09-18 20:16:27
table.width/5,所以可能在0..4中使用j使用android:stretchColumns使表能够正确地调整按钮宽度。
但,
TableRow的子属性不需要在XML文件中指定layout_width和layout_height属性。TableRow总是强制这些值分别为ViewGroup.LayoutParams.MATCH_PARENT和ViewGroup.LayoutParams.WRAP_CONTENT。
这意味着,从书本上看,您不能用垂直的表格填充父表。但通过钩子或弯,你可以强迫每个按钮的高度正好是全部高度的1/10。
您不能做的是在构建布局时使用table.height,因为在这个阶段还不知道父级的高度。我希望你能根据屏幕大小来计算这个高度。
https://stackoverflow.com/questions/57994351
复制相似问题