以编程方式添加到 TableLayout 的 TextView 与父级的宽度不匹配
TextView programmatically added to TableLayout doesn't match parent's width
我想创建一个包含两列的 TableLayout
。第一列将在 ImageView
内显示 drawable 并且应该具有图片的宽度。第二列应占用所有剩余的 space(因此匹配行的宽度)。
TableLayout(context).apply {
myList.forEach {
val tableRow = TableRow(context)
tableRow.setBackgroundColor(Color.GREEN)
tableRow.addView(ImageView(context).apply {
setImageResource(R.drawable.ic_blabla)
})
tableRow.addView(TextView(context).apply {
text = it.code.toString()
setBackgroundColor(Color.YELLOW)
layoutParams = TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT,
TableRow.LayoutParams.WRAP_CONTENT)
})
addView(tableRow)
}
myLinearLayout.addView(this)
}
Table 布局以编程方式添加到线性布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/myLinearLayout"/>
结果,我得到了两列,但都具有内容的宽度。该行有一个绿色背景,所以我可以看到它有屏幕的宽度,但黄色背景的第二列有里面显示的文本的宽度。
知道如何设置第二列的宽度来占用所有 space 吗?
为列设置 layout_weigth="1"
属性,它将为视图分配额外的重要性,因此该列将能够在屏幕上填充更多 space。
我想创建一个包含两列的 TableLayout
。第一列将在 ImageView
内显示 drawable 并且应该具有图片的宽度。第二列应占用所有剩余的 space(因此匹配行的宽度)。
TableLayout(context).apply {
myList.forEach {
val tableRow = TableRow(context)
tableRow.setBackgroundColor(Color.GREEN)
tableRow.addView(ImageView(context).apply {
setImageResource(R.drawable.ic_blabla)
})
tableRow.addView(TextView(context).apply {
text = it.code.toString()
setBackgroundColor(Color.YELLOW)
layoutParams = TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT,
TableRow.LayoutParams.WRAP_CONTENT)
})
addView(tableRow)
}
myLinearLayout.addView(this)
}
Table 布局以编程方式添加到线性布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/myLinearLayout"/>
结果,我得到了两列,但都具有内容的宽度。该行有一个绿色背景,所以我可以看到它有屏幕的宽度,但黄色背景的第二列有里面显示的文本的宽度。
知道如何设置第二列的宽度来占用所有 space 吗?
为列设置 layout_weigth="1"
属性,它将为视图分配额外的重要性,因此该列将能够在屏幕上填充更多 space。