我正在尝试创建一个包含1行的表,第一列是标题的名称,下一列是一个小的imageView图标。我无法弄清楚为什么没有显示出来。
这是我的代码。我将在下面展示我想要复制的xml。
这里我只是想创建一个表。然后我计划使用for循环来生成具有不同标题的多个表(这是为了将来使用。)
RelativeLayout relative = new RelativeLayout(context);
//set layout
LayoutParams relativeLayoutParams = new LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT
);
relative.setLayoutParams(relativeLayoutParams);
//create table for each header
TableLayout table = new TableLayout(context);
TableRow tableRow = new TableRow(context);
//set layout
LayoutParams tableLayoutParams = new LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT
);
LayoutParams tableRowLayout = new LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT
);
tableLayoutParams.setMargins(15, 10, 0, 0);
table.setBackgroundResource(R.drawable.rectangle);
//Set layout params for Table & Row
table.setLayoutParams(tableLayoutParams);
tableRow.setLayoutParams(tableRowLayout);
//Create textView to contain header Title and icon
TextView tvHeader = new TextView(context);
ImageView infoIcon = new ImageView(context);
LayoutParams headerLayoutParams = new LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT
);
LayoutParams iconLayoutParams = new LayoutParams(20,20);
iconLayoutParams.setMargins(10, 0, 0, 0);
//set icon image
infoIcon.setBackgroundResource(R.drawable.information);
// Set textView layout params
tvHeader.setLayoutParams(headerLayoutParams);
// Set icon layout params
infoIcon.setLayoutParams(iconLayoutParams);
//Assign the header text
tvHeader.setText("testHeader");
//Add the TextView & Icon to the row
tableRow.addView(tvHeader);
tableRow.addView(infoIcon);
//Add the rows to the table
table.addView(tableRow);
relative.addView(table);
setContentView(relative);
这是我想要生成的xml
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/rectangle"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp">
<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="column1"
android:id="@+id/textView" />
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:text="column2"
android:id="@+id/image"
android:src="@drawable/information"
android:layout_marginLeft="15dp" />
</TableRow>
</TableLayout>
</RelativeLayout>
答案 0 :(得分:0)
我已经设法找出问题所在。没有显示的原因是因为我会为TextView创建一个LinearLayout布局参数,而我应该使用“TableRow.LayoutParams”因为它是父级。这是我发现的类似answer 的类型,这再次证实了我的怀疑。