Android表格布局TableLayout简单实现(Java动态添加,设置边框,删除数据(单行,多行))

来源:互联网 发布:115年费会员淘宝 编辑:程序博客网 时间:2024/06/06 07:37

首先粗糙的直接讲解实现要点(速成鸡),然后再啰嗦的讲几句

1,Java动态添加
XML文件中定义TableLayout,Java中定义TableRow,循环往TableRow中添加TextView实现一行数据,再将TableRow添加到TableLayout中。

2,设置边框
TableLayout没有直接设置边框的方法,有一个比较逗比的办法,但是也很简单就实现了。TableLayout中设置背景色android:background=”想要实现的边框色”。然后行数据或者列数据。设置与表格背景不一样的颜色覆盖再加上Margin属性就能实现。Java中使用
LinearLayout.LayoutParams lp = new TableRow.LayoutParams(-1,-1);
lp.setMargins(1,1,1,1);
TableRow或者TextView.setLayoutParams(lp);
设置边距。

3,删除数据
TableLayout删除数据比较诡异哈,它需要倒过来删,从下往上删除数据
TableLayout.removeViewAt(删除行数0开始);
TableLayout.removeView(删除行数0开始.getChildAt(删除行数0开始));
TableLayout.removeAllViews();清空所用

下面有兴趣的新手小狮子可以看看~写的并不是很好~~~

1,添加(Java动态添加)

XML文件中定义

<TableLayout            android:id="@+id/tablelayout"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:shrinkColumns="*" /><!--shrinkColumns表示列自收缩,比如数据过长显示不全    列从0开始,*标识所有列,多列使用0,1,2...-->

Java中简单实现

for (int i = 0; i < 行数; i++) {    //创建一行    TableRow row = new TableRow(getApplicationContext());    //创建显示的内容,这里创建的是一列    TextView text = new TextView(getApplicationContext());    //设置显示内容    text.setText("");    text.setTextColor(Color.BLUE); //字体颜色    text.setBackgroundColor(Color.BLUE); //背景色    text.setTextSize(50); //字体大小    text.setGravity(Gravity.CENTER); //居中显示    //添加到Row    row.addView(text);    //将一行数据添加到表格中    TableLayout.addView(row);}

2,设置边框
XML文件中给TableLayout加上个要设置的边框色

android:background="RGB~"

给行列加上背景色与边距

android:layout_marginTop=""android:layout_marginBottom=""android:layout_marginStart=""android:layout_marginEnd=""<!--上下左右边距,按需要设置,值就是边框的宽度-->

Java中给控件设置边距

LinearLayout.LayoutParams lp = new TableRow.LayoutParams(-2,-2);lp.setMargins(1,1,1,1);行or单个数据.setLayoutParams(lp);<!--设置上下左右边距为1dp,需要注意这里是为了设置Row的控件,所以new 是TableRow.LayoutParams,new 其他的是没有效果的-->

3,删除数据

TableLayout table;//获取TableLayout中的行数int len = table.getChildCount();if (len > 1) { //这里的判断我是为了实现动态更新数据...保留标题   //必须从后面减去子元素   for (int i = len + 1; i > 0; i--) {        table.removeView(table.getChildAt(i));   }}

感谢耐心观看,如果有疑问或者建议,还请评论~

欢迎加我一起讨论~ Clay

QQ.2095204800

1 0
原创粉丝点击