android中Tablelayout一行只显示一个控件且沾满整行怎么办
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android中Tablelayout一行只显示一个控件且沾满整行怎么办相关的知识,希望对你有一定的参考价值。
参考技术A 建议TableRow下不要再放布局。TableRow可以设置列数或自动缩放等属性。要获取LinearLayout的height可以给该LinearLayout设置一个id,通过id得到LinearLayout对象,就可以getHeight()取得height的值。
------------------------------------------------------------------------
我现在给LinearLayout赋了Id属性而且用findViewById获得了对象但是用getHeight()后获得值是-2。如何获得其正确值?
获取的值是跟你设置有关的,如果你的LinearLayout的height设置是fill_content或wrap_content,当然是取得-1或-2.如果你给其指定一个值,就可以获取得到。
一般上都是通过layout.getLayoutParams().height = 50;修改LinearLayout的值。也可以直接在xml文件中修改。追问
不是嵌套布局,是放一个控件,比如编辑框,我想它是布满一行的,可是它只在嗲一个单元格里,该怎么办?
参考技术B 你说些什么我不懂android实现复杂table表格合并单元格?
android怎么实现这样的表格?
可以通过Tablelayout布局的layout_span属性实现,layout_span指定该单元格占据的列数
1、Tablelayout简介
Tablelayout类以行和列的形式对控件进行管理,每一行为一个TableRow对象,或一个View控件。当为TableRow对象时,可在TableRow下添加子控件,默认情况下,每个子控件占据一列。 当为View时,该View将独占一行。
2、TableLayout行列数的确定
TableLayout的行数由开发人员直接指定,即有多少个TableRow对象(或View控件),就有多少行。
TableLayout的列数等于含有最多子控件的TableRow的列数。如第一TableRow含2个子控件,第二个TableRow含3个,第三个TableRow含4个,那么该TableLayout的列数为4.
3、TableLayout可设置的属性详解
TableLayout可设置的属性包括全局属性及单元格属性。
单元格属性,有以下2个参数:
android:layout_column 指定该单元格在第几列显示
android:layout_span 指定该单元格占据的列数(未指定时,为1)
示例:
android:layout_column="1" 该控件显示在第1列android:layout_span="2" 该控件占据2列
4、一个TableLayout布局的实例
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_
android:layout_
android:padding="3dip"
>
<!-- 1个TableLayout,用于描述表中单元格的属性,包括:android:layout_column 及android:layout_span-->
<TextView
android:text="表:单元格设置:指定单元格属性设置"
android:layout_
android:layout_
android:textSize="15sp"
android:background="#7f00ffff"/>
<TableLayout
android:id="@+id/table2"
android:layout_
android:layout_
android:padding="3dip">
<TableRow>
<Button android:text="第0列"/>
<Button android:text="第1列"/>
<Button android:text="第2列"/>
</TableRow>
<TableRow>
<TextView android:text="我被指定在第1列" android:layout_column="1"/>
</TableRow>
<TableRow>
<TextView
android:text="我跨1到2列,不信你看!"
android:layout_column="1"
android:layout_span="2"
/>
</TableRow>
</TableLayout> 参考技术A 看你列数固定否,我做过类似项目,简单的方法如下:
1、表格行、列固定的,你每个单元格当成一个TextView,中间的表格线也是TextView,你懂得。像最左侧的合并3行的单元格可以用线性布局为控制。
2、表格列数不定的,表头用TextView做好固定的,下边放一个ListView,ListView的每一行用固定的格式,格式文件的写法同上。
明白吧,有不明白的我再补充。追问
列是固定的,行也固定,以周为单位,从周一到周日
第一种方法我也试过,但是布局文件得写很多,有将近两千行代码,效率低,而且还不能自适应屏幕和分辨率,如图:
第二种方法没试,ListView怎么实现合并单元格,方便留下QQ吗,我加你,向你请教一下,谢谢啊!有实现的具体例子吗?或者相关的参考资料也行!我的邮箱:lanras@163.com
我的QQ1802798025,欢迎讨论。项目有保密协议,我不敢发。我们可以QQ上讨论。
ListView对每一行显示的内容也是通过一个XML布局显示的,你这个表格,一周中的某一天对应着3行,而这3行是重复7次,你可以把这重复的内容写成一个XML,然后在ListView的Adapter里往进放对应的数据。
以上是关于android中Tablelayout一行只显示一个控件且沾满整行怎么办的主要内容,如果未能解决你的问题,请参考以下文章