Android TableLayout中“colspan”的等价物是什么?
我在Android中使用TableLayout。 现在我有一个TableRow,其中有两个项目,在它下面有一个TableRow。 它呈现如下:
----------------------------- | Cell 1 | Cell 2 | ----------------------------- | Cell 3 | ---------------
我想要做的是让Cell 3在两个上层单元之间伸展,所以它看起来像这样:
----------------------------- | Cell 1 | Cell 2 | ----------------------------- | Cell 3 | -----------------------------
在HTML中,我会使用COLSPAN ….我如何使这项工作在Android?
看起来有这样一个属性: layout_span
更新:此属性必须应用于TableRow的子项。 不是TableRow本身。
只是为了完成答案,layout_span属性必须添加到孩子,而不是TableRow。
这段代码显示了我的tableLayout的第三行,它跨越了2列。
<TableLayout> <TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_span="2" android:text="@string/create" /> </TableRow> </TableLayout>
这就是你如何编程
//theChild in this case is the child of TableRow TableRow.LayoutParams params = (TableRow.LayoutParams) theChild.getLayoutParams(); params.span = 2; //amount of columns you will span theChild.setLayoutParams(params);
您必须使用layout_weight来填充整个行,否则它仍会填充表格布局的左列或右列。
<TableRow android:id="@+id/tableRow1" android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_span="2" android:layout_weight="1" android:text="ClickMe" /> </TableRow>
也许这会帮助别人。 我试过layout_span
的解决scheme,但这不适合我。 所以我用这个技巧解决了这个问题。 只需使用LinearLayout
来代替需要colspan的TableRow
,就是这样。
在TableRow元素的子元素中使用android:layout_span
我认为你需要围绕另一个布局。 有一个布局列表垂直,里面有另一个(或在这种情况下,两个)水平列表。
我仍然很难很好地将界面拆分为Android中的50-50部分。
我有一些rowspan的问题,例如用代码生成的TableRow,Textview等等。 即使Onimush的答案似乎是好的,它不适用于生成的用户界面。
这里是一段代码….不工作:
TableRow the_ligne_unidade = new TableRow(this); the_ligne_unidade.setBackgroundColor(the_grey); TextView my_unidade = new TextView(this); my_unidade.setText(tsap_unidade_nom); my_unidade.setTextSize(20); my_unidade.setTypeface(null, Typeface.BOLD); my_unidade.setVisibility(View.VISIBLE); TableRow.LayoutParams the_param; the_param = (TableRow.LayoutParams)my_unidade.getLayoutParams(); the_param.span = 3; my_unidade.setLayoutParams(the_param); // Put the TextView in the TableRow the_ligne_unidade.addView(my_unidade);
代码似乎是确定的,但是,当你到达“the_params”的init时,它返回NULL。
另一方面,这个代码就像一个魅力:
TableRow the_ligne_unidade = new TableRow(this); the_ligne_unidade.setBackgroundColor(the_grey); TextView my_unidade = new TextView(this); my_unidade.setText(tsap_unidade_nom); my_unidade.setTextSize(20); my_unidade.setTypeface(null, Typeface.BOLD); my_unidade.setVisibility(View.VISIBLE); // Put the TextView in the TableRow the_ligne_unidade.addView(my_unidade); // And now, we change the SPAN TableRow.LayoutParams the_param; the_param = (TableRow.LayoutParams)my_unidade.getLayoutParams(); the_param.span = 3; my_unidade.setLayoutParams(the_param);
唯一的区别是在设置span之前,我在TableRow里面推Textview。 在这种情况下,它的工作。 希望这会帮助别人!
- Gradle DSL方法未find:'apt()'
- 如何使用ADT插件将“Androiddevise支持库”添加到Eclipse中?
- 错误:无法find符号variablesabc_ic_ab_back_mtrl_am_alpha
- NullPointerException在onCreate()中访问视图
- 在构buildAndroid项目的Mono时,用代码1退出“aapt.exe”
- Android> 4.0:想法如何logging/捕获内部audio(例如STREAM_MUSIC)?
- 以编程方式在android中启用/禁用数据连接
- 是否有可能使用VectorDrawable在button和TextViews使用android:DrawableRight?
- 如何检索Android中的可用/安装的字体列表?