Java 设置表格行中的边距和背景色
当以编程方式在TableRow上设置边距和背景色时,我遇到了一个奇怪的问题。 我已经读过关于页边空白和背景色的书,但显然,我做的事情是正确的。问题似乎在别的地方 我动态创建TableRows,它必须是特定的颜色以提高可读性。我只是写了这样一句话:Java 设置表格行中的边距和背景色,java,android,android-layout,Java,Android,Android Layout,当以编程方式在TableRow上设置边距和背景色时,我遇到了一个奇怪的问题。 我已经读过关于页边空白和背景色的书,但显然,我做的事情是正确的。问题似乎在别的地方 我动态创建TableRows,它必须是特定的颜色以提高可读性。我只是写了这样一句话: if(myCursor != null && myCursor.moveToFirst()){ do{ TableRow tableRow = new TableRow(getActivity()); TableLayo
if(myCursor != null && myCursor.moveToFirst()){
do{
TableRow tableRow = new TableRow(getActivity());
TableLayout.LayoutParams tlp = new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.MATCH_PARENT);
tlp.setMargins(0, 10, 0, 10);
tableRow.setLayoutParams(tlp);
for(int j=0 ; j < TopTagsDetailsCursor.getColumnCount();j++){
TextView tv = new TextView(getActivity());
tv.setText(TopTagsDetailsCursor.getString(j));
if (j>0) tv.setGravity(Gravity.CENTER);
tableRow.addView(tv);
}
if ((i % 2) != 0){
tableRow.setBackgroundColor(getResources().getColor(R.color.table_row));
}
dataTable.addView(tableRow);
i++;
});
}while(myCursor.moveToNext());
我不明白的是,在每一个奇数行上,使用我的自定义背景色,我的自定义顶部和底部边距10不应用于该行,但它们确实在偶数行上。
更奇怪的是:如果我删除了代码中关于自定义背景色的部分,那么所有地方的边距都可以
那么,为什么我的自定义边距在设置自定义背景色时不合适
PS:我甚至尝试移动一些代码行,特别是addViewtableRow和那些关于颜色的代码行,但没有效果
提前谢谢!: 它没有解释为什么它以前不工作,但至少我最终找到了一个解决方案。 我删除这些行:
TableLayout.LayoutParams tlp = new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.MATCH_PARENT);
tlp.setMargins(0, 10, 0, 10);
tableRow.setLayoutParams(tlp);
我替换了:
tableRow.addView(tv);
作者:
它终于可以正常工作了。。。即使我不明白为什么我的第一个解决方案不起作用:请随时向我解释原因
tableRow.addView(tv, new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, 80)); //or any other value