首页 > 其他分享 >使用TableLayout应该注意的地方

使用TableLayout应该注意的地方

时间:2023-04-06 20:36:02浏览次数:48  
标签:layout column TableRow TableLayout 设置 android 应该 注意


4.0之后推荐使用GridLayout代替TableLayout
详情见:
浅谈android4.0开发之GridLayout布局

TableLayout和我们平时在网页上见到的Table有所不同, TableLayout没有边框的,它是由多个TableRow对象组成,每个TableRow可以有0个或多个单元格,每个单元格就是一个View。这些TableRow,单元格不能设置layout_width,宽度默认是fill_parent的,只有高度layout_height可以自定义,默认是wrap_content。
     单元格可以为empty,并且通过android:layout_column可以设置index值实现跳开某些单元格。在TableRow之间,添加View,设置layout_height="1dip"以及背景色,就可以实现一条分割线。android:layout_span可以设置合并几个单元格。

android:shrinkColumns="可收缩的column"
android:stretchColumns="可伸展的column"
android:shrinkColumns和android:stretchColumns的值都是以0开始的index,但必须是string值,即用"1,2,5"来表示。可以用"*"来表示all columns。而且同一column可以同时设置为shrinkable和stretchable。
如果使用TableLayout类的setColumnShrinkable/setColumnStretchable (int columnIndex, boolean isShrinkable)就麻烦些了,需要一个一个column来设置。
也可以使用TableLayout的setShrinkAllColumns/setStretchAllColumns来设置all columns。
判断这些column是否shrinkable或stretchable,可以调用isColumnShrinkable/isColumnStretchable(int columnIndex),isShrinkAllColumns()/isStretchAllColumns()。

而动态隐藏column,可以调用setColumnCollapsed (int columnIndex, boolean isCollapsed)来指定相应的column。
另外TableLayout类的boolean isColumnCollapsed (int columnIndex)能够判断指定的column是否隐藏。

关于分割线:
我们可以通过在两个TableRow之间添加一个<View>,并设置它的layout_height="1dip"和background来解决。但这样就多产生了一个View,有点浪费。
其实还可以设置TableRow的bottomMargin=1来产生一条分割线。

为何不能动态生成TableLayout ?
是否有时候会碰到这样的情景

另一个问题:
关于TableLayout和HorizontalScrollView一起使用时的宽度问题
     我有一个TableLayout,它的内容是动态生成的。我遇到了下面的问题:
     当动态生成的一行的内容太长时,靠右边的内容会被遮住了。于是我想要这个TableLayout在横向上可以滚动。
     解决的办法是,用HorizontalScrollView包装TableLayout,这样,当内容很长时,就会出现横向滚动条。
    像这样:

<HorizontalScrollView  
 android:layout_width="fill_parent"  
 android:layout_height="fill_parent">  
  <TableLayout  
  android:id="@+id/tl_forcast_result"  
  android:layout_width="fill_parent"  
  android:layout_height="wrap_content"  
  android:padding="10dp">    
  </TableLayout>  
 </HorizontalScrollView>



     但此时又出现了另一个问题,加上HorizontalScrollView后,虽然我已经设了TableLayout的宽度是fill_parent。但当内容较少时,TableLayout还是根据内容自适应宽度,不能满屏。


    此时,需要设置一个属性就能解决问题了。设置HorizontalScrollView的android:fillViewport="true"。也就是设置是否将HorizontalScrollView的内容宽度拉伸以适应视口(viewport)


标签:layout,column,TableRow,TableLayout,设置,android,应该,注意
From: https://blog.51cto.com/u_5454003/6174092

相关文章

  • BiSyn GAT+:用于基于方面的情绪分析的双语法感知图形注意力网络
    基于方面的情绪分析(ABSA)是一种细粒度的情绪分析任务,旨在调整方面和相应的情绪,以进行特定方面的情绪极性推断。这很有挑战性,因为一个句子可能包含多个方面或复杂的(例如,条件关系、协调关系或对抗关系)。近年来,利用图神经网络挖掘依赖语法信息已成为最流行的趋势。尽管它取得了成功,但......
  • 网站突然用 IP 访问不了应该怎么办
    在访问网站时,通常会通过域名进行访问,而不是直接使用IP地址。但是,偶尔会出现一些情况,导致使用域名无法访问,而只能使用IP地址进行访问。那么,当一个网站突然用IP访问不了时,我们应该怎么办呢?本文将给大家提供一些简单易行的解决方法。1、检查网络连接问题首先,我们需要确保......
  • Verilog中的real类型及注意事项
    Verilog中的real类型变量为双精度浮点数,且符合IEEEStd754-1985对双精度浮点数的规定,即双精度浮点数为64位,其中1位符号位,11位指数位,53位尾数(其中包含1位隐含位).在IEEEStd754-1985中一般用{S、E、M}对双精度浮点数进行描述,一个64位双精度浮点数的表示格式如下:其中S为符......
  • 注意事项
    变量类型变量用途不合法情况对一个没有排序的数组lower_bound。解决方案:每次lower_bound之前先排序,反正都是\(n\log_2n\)。数组越界多测取模......
  • lazarus在龙芯电脑使用域天加密锁要注意的事项
    lazarus在龙芯电脑使用域天加密锁要注意的事项:1、使用域天官方的接口单元时加密锁的so文件必须拷贝到/usr/lib/这个目录。2、普通用户如果调用加密锁so出错或失败,需要进行以下操作:建一个规则文件放/etc/udev/rules.d.文件内容如下:SUBSYSTEM=="input",GROUP="input",MODE=......
  • 表格 表格 编辑之间数据联动需要注意的事项
    1. letnewList=JSON.parse(JSON.stringify(this.questionsList))把要赋值的数据转成json字符串,然后再转成json数据赋值2. newList=[...this.questionsList]如果数组的每项不是对象,可以通过结构赋值的方法实现这种需求3. textarea输入时中文逗号切换英文逗号时:onafter......
  • 软件著作权申请-注意事项(微信小程序)
    开发的硬件环境:PC电脑内存:8GCPU:i565003.2GHz硬盘:1T显卡:GTX1080ti运行的硬件环境:安卓手机开发该软件的操作系统:Windows10专业版软件开发环境/开发工具:UnityC#VisualStudio该软件的运行平台/操作系统:安卓操作系统5.0及以上软件运行支撑环境/支持软......
  • Cassandra一个节点到底应该存放多大数据
    在Cassandra2.x版本及更早版本的时候,我经常建议用户单节点规模数据不要超过1T,到Cassandra3.x之后我又建议用户单节点规模不要超过4T。为什么会有这些变化,其实是跟基础设施的发展有关系的。一方面是随着SSD硬盘的越来越廉价,大部分用户使用SSD替换了机械硬盘提升了磁盘随机读写能......
  • 2022全国职业技能大赛-云计算私有云平台搭建及注意事项
    @目录环境准备基础配置搭建yum源修改openrc.sh计算节点分区脚本安装安装平台基本服务环境准备软件包:答题云主机环境;CentOS-7-x86_64-DVD-2009.iso(centos7.9)iaas版本;chinaskills_cloud_iaas_v2.0.3.iso(openstackT版)国赛竞赛方式:1,openstack平台,现场会提供一个IP地址,登录......
  • 重要!每个开发者都应该掌握的9个核心算法
    许多开发者似乎都有一个很大的误解,认为算法在编程工作中没什么用处,只是工作面试中的加分项。其实并不是这样的,成为一名有秀的开发者,极其重要的是具备算法思维能力。不仅能够复制和修改标准算法,还能够使用代码运用算法解决遇到的任何问题。这里介绍9种核心算法,这是你成为高阶开发......