android 表格控件

本文介绍了在Android中如何利用TabLayout和ListView等组件组合创建一个自定义的表格控件,支持设置表头、动态添加行及自定义背景颜色。由于内容可能包含大量文字或图片,故需要实现水平和垂直滚动条。核心是创建一个抽象类TabRow来构建表格的每一行。
摘要由CSDN通过智能技术生成

  android 没有现成的表格控件,但我们可以根据Tablayout,ListView等组合出自己的表格。废话少说,使用Tablayout自己写一个表格控件,该表格控件可以自己设置表头,动态的添加行,自定义背景颜色等。

效果图:


首先表格的的的某一项的文字可能很多,也可能是表格中有大的图片等内容,因此可能一个屏幕不够用的情况,这是必须使用水平和垂直的滚动条了,既然表格中不仅仅有文字,因此必须自己写好表格的每一行即是TabRow


KTabeView

import android.content.Context;
import android.graphics.Color;
import android.util.AttributeSet;
import android.widget.HorizontalScrollView;
import android.widget.ScrollView;
import android.widget.TableLayout;
import android.widget.TableRow;


/*
 * 一个表格控件
 * 宽哥
 * 2013、8、7
 */
public class KtableView extends ScrollView {

	
	private TableLayout tableLayout; //表格布局
	private AddDivisionRow divisionRow;  //水平分割线
	
	//各种参数
	private int headColor = Color.WHITE;
	private int headHeight = TableRow.LayoutParams.WRAP_CONTENT;
	private int headtextColor = Color.BLACK;
	private int hedaMaxEms = 10;
	
	private int divisonColor = Color.RED;
	private int divisonWidth = 1;
	
	
	private int resId = 0;
	private int backgroudColor = Color.WHITE;
	private int cellMaxEms = 10;;
	private int cellTextColor = Color.BLACK;
	private int cellTextSize = 15;
	private int cellHeight = TableRow.LayoutParams.WRAP_CONTENT;
	
	public KtableView(Context context, AttributeSet attrs) {
		super(context, attrs);
		// TODO Auto-generated constructor stub
		initWidge();	
	}

	/*
	 * 公共接口
	 */
	
	/*
	 * 设置表格的标题头
	 */
	public void setTableHeaders(String[] header){
		
		//添加分割线
		divisionRow = new AddDivisionRow(getContext());
		tableLayout.addView(divisionRow.addTableRow());
		
		
		AddHeadRow  row = new AddHeadRow(getContext(), header);
		
		row.setDivisonColor(divisonColor);
		row.setDivisonWidth(divisonWidth);	
		row.setBackgroundColor(headColor);
		row.setTabRowHeight(headHeight);
		row.setTextMaxEms(hedaMaxEms);
		row.setTextClor(headtextColor);
		
		tableLayout.addView(row.addTableRow());
	
		tableLayout.addView(divisionRow.addTableRow()); //添加分割线
		
	}
	/*
	 * 设置表格头的背景颜色
	 */
	public void setTableheadColor(int color){
		this.headColor =color;
	}
	/*
	 * 设置表头的的高度
	 */
	public void setTableHeadHeigt(int height){
		this.headHeight = height;
	}
	/*
	 * 设置表头的的字体颜色
	 */
	public void setTableHeadTextcolor(int color){
		this.headtextColor = color;
	}
	
	/*
	 * 设置表头的的字体大小
	 */
	public void setTableHeadMaxEms(int size){
		this.hedaMaxEms =size;
	}
	
	public void setTableDivisonColor(int color){
		this.divisonColor = color;
	}
	public void setTableDivisonWidth(int width){
		this.divisonWidth &
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值