首先粗糙的直接讲解实现要点(速成鸡),然后再啰嗦的讲几句
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));
}
}