对于我的学士论文,我想实现一个android应用程序。出于测试目的,我创建了一个tablelayout。行和包含单元格取决于用户输入。为了获得关于tablelayout的一些经验,我用编程方式创建了一个包含7个单元格的tablelayout:第一行是头部单元格,每个单元格都有colspan = 2。Android TableLayout cell colspan
现在,我正在逐步删除第二行中的一个单元格(从右到左)。 一切都很好。我再次移除了第二行中的一个单元格。看到图片: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);
通常建议使用AS布局构建器/ XML创建布局,而不是在代码中手动创建布局。通过布局构建器,您还可以看到布局的外观,而不必在不同的设备屏幕上运行它。 – nbokmans
对于我的应用程序而言,内部布局构建器不适用。用户可以在外部XML文件中定义一个表格,该表格将被导入。表格结构可以因用户而异。 – Rotzloeffel