对于我的学士学位论文,我想实现一个android应用程序。出于测试目的,我创建了一个表布局。行和包含的单元格取决于用户输入。为了获得一些表格布局的经验,我以编程方式创建了一个包含7个单元格的表格布局:第一行是标题单元格,每个单元格都有colspan=2。
现在,我正在逐步删除第二行(从右到左)中的一个单元格。百事大吉。我再次删除了第二行中的一个单元格。见下图:table with 5 cells。百事大吉。但现在,当我重新编译或进行即时重新加载时,会发生以下情况:table with 5cells, but wrong。这是怎么回事?我没有在代码中做任何改动...有什么神奇的事情发生了?!我在一个android虚拟设备上测试了这个变通方法(Api 17)。Api 17是必需的。使用api 25的虚拟设备时,不会出现错误。
有人能帮我吗?
下面是代码的一部分:
TableRow.LayoutParams params = new TableRow.LayoutParams();
params.span = 2;
params.weight = 1;
TableLayout table = new TableLayout(context);
TableRow row1 = new TableRow(context);
TableRow row2 = new TableRow(context);
TextView tv1 = new TextView(context);
tv1.setText("header");
tv1.setWidth(300);
tv1.setHeight(100);
tv1.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
tv1.setBackground(darkBackground);
tv1.setLayoutParams(params);
row1.addView(tv1);
TextView tv2 = new TextView(context);
tv2.setText("header");
tv2.setWidth(300);
tv2.setHeight(100);
tv2.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
tv2.setBackground(darkBackground);
tv2.setLayoutParams(params);
row1.addView(tv2);发布于 2017-02-25 03:26:37
仅供参考:我找到了解决方案。这都是关于背景的。由于GradiantDrawable对象的错误定义,第二张图片(包含5个单元格的表格,但错误)(第一行,第一个单元格)中的背景(灰色)不适合整个宽度。我忘了设置形状属性:
GradiantDrawable background = new GradiantDrawable();
background.setColor(Color.rgb(235,235,235));
background.setStroke(1, Color.rgb(0,0,0));
// don't forget to set the following attribute:
background.setShape(GradientDrawable.RECTANGLE);https://stackoverflow.com/questions/42436146
复制相似问题