您的位置:首页 > 移动开发 > Android开发

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

2017-04-13 00:45 1211 查看
首先粗糙的直接讲解实现要点(速成鸡),然后再啰嗦的讲几句

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐