首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android TableLayout cell colspan

Android TableLayout cell colspan
EN

Stack Overflow用户
提问于 2017-02-24 18:21:45
回答 1查看 834关注 0票数 1

对于我的学士学位论文,我想实现一个android应用程序。出于测试目的,我创建了一个表布局。行和包含的单元格取决于用户输入。为了获得一些表格布局的经验,我以编程方式创建了一个包含7个单元格的表格布局:第一行是标题单元格,每个单元格都有colspan=2。

现在,我正在逐步删除第二行(从右到左)中的一个单元格。百事大吉。我再次删除了第二行中的一个单元格。见下图:table with 5 cells。百事大吉。但现在,当我重新编译或进行即时重新加载时,会发生以下情况:table with 5cells, but wrong。这是怎么回事?我没有在代码中做任何改动...有什么神奇的事情发生了?!我在一个android虚拟设备上测试了这个变通方法(Api 17)。Api 17是必需的。使用api 25的虚拟设备时,不会出现错误。

有人能帮我吗?

下面是代码的一部分:

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

发布于 2017-02-25 03:26:37

仅供参考:我找到了解决方案。这都是关于背景的。由于GradiantDrawable对象的错误定义,第二张图片(包含5个单元格的表格,但错误)(第一行,第一个单元格)中的背景(灰色)不适合整个宽度。我忘了设置形状属性:

代码语言:javascript
复制
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);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42436146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档