我在这里搜索过,但我似乎无法解决这个问题。我有一个ScrollView
,在ScrollView
内是LinearLayout
,我想读取我的SQL数据库并显示结果如此;
Linear Layout
ScrollView
Linear Layout
TableRow
TextView
TextView
TableRow
TextView
TextView
/Linear Layout
/ScrollView
/LinearLayout
我的代码如下:
TableRow tRow;
ContextThemeWrapper ttRow = new ContextThemeWrapper(this, R.style.coreTable);
LinearLayout LL = (LinearLayout) findViewById(R.id.linearCores);
LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
if (cores.moveToFirst()) {
while (cores.isAfterLast() == false) {
Log.e("CORE LIST", cores.getString(1));
tRow = new TableRow(ttRow);
tRow.setLayoutParams(lp);
tRow.setOrientation(TableRow.VERTICAL);
tRow.setId(cores.getInt(0));
tRow.setBackgroundResource(R.drawable.shape_border);
ContextThemeWrapper newTxtA = new ContextThemeWrapper(this, R.style.coreHeaderView);
TextView tTextA = new TextView(newTxtA);
tTextA.setLayoutParams(lp);
tTextA.setText(cores.getString(1) + " (Lvl " + cores.getString(2) + ")");
tRow.addView(tTextA);
TextView tTextB = new TextView(coreChooser.this);
tTextB.setLayoutParams(lp);
tTextB.setText(cores.getString(5));
tRow.addView(tTextB);
LL.addView(tRow);
cores.moveToNext();
}
}
在我的模拟器上,它会显示第一个tRow.addView
,但不显示其余部分,但是背景似乎会延伸过去的屏幕。
我真的不确定我在这里做错了什么。
答案 0 :(得分:3)
TableRow的文档说明如下:
TableRow
应始终用作TableLayout
的子级。如果TableRow
的父级不是TableLayout
,则TableRow
将表现为水平LinearLayout
。
如果您的目的是让每对TextView
分享共同背景R.drawable.shape_border
,那么请使用嵌套LinearLayout
代替TableRow
(无论如何,TableRow
已从LinearLayout
延长。
或者,如果您绝对想要使用TableRow
的某些特定功能,请将R.id.linearCores
改为TableLayout
而不是LinearLayout
。