Android 如何正确设置LayoutParams
我正在创建一个由10X10个单元格组成的表,但它(创建所有单元格后)不适合其父单元格。Android 如何正确设置LayoutParams,android,android-layout,kotlin,Android,Android Layout,Kotlin,我正在创建一个由10X10个单元格组成的表,但它(创建所有单元格后)不适合其父单元格。 为了便于在显示代码之前理解,该表如下所示: 如您所见,每个表格单元格都是一个按钮,文本为“Test”,我无法将这个10X10网格展开以填充其父单元格(视图水平退出屏幕,而不会垂直填充) 我以编程方式创建每个单元格,如下所示: val table = findViewById<TableLayout>(R.id.table) for (i in 0..9) { //10
- 为了便于在显示代码之前理解,该表如下所示:
我以编程方式创建每个单元格,如下所示:
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设置为MATCH\u PARENT
具有与WRAP\u CONTENT
相同的效果
我查过了,但还没有找到答案 我做错了什么使我的表格消失了,如何使单元格适合表格大小?
table.width/5
,因此您可能在0..4中使用j关于1-编辑问题时出错,谢谢。您可能可以使用android:stretchColumns,很好的提示,现在单元格正在行内拉伸/收缩(我使用了
android:shrinkColumns=“*”
来进行低收缩)。知道如何使每一行拉伸或收缩以使表格也垂直适合吗?来自文档的更多信息:表格行的子项不需要在XML文件中指定布局宽度和布局高度属性。TableRow始终将这些值分别强制为ViewGroup.LayoutParams.MATCH_父级和ViewGroup.LayoutParams.WRAP_内容。
cell.layoutParams = TableRow.LayoutParams(
//table = the view that contains all cells
table.width/5, //make the cell width = 20% of the parent width
table.height/10 //make the cell height= 10% of the parent height
)