android自定义table,Android应用开发android 自定义表格

本文将带你了解Android应用开发android 自定义表格,希望本文对大家学Android有所帮助。

e18e7f8c556ebe30617d888f46e28800.png

本文通过ScrollView   嵌套 ListView来实现滚动表格功能。

实现效果如下图:

这里写图片描述

如上图所示实现功能如下:

1、列表头 和 数据 可以左右滑动,方便超出屏幕数据查看。

2、行表头 和 数据 可以上下滑动,方便超出屏幕数据查看。

3、左右滑动时 行表头固定,上下滑动时 列表头固定。

实现代码如下:

package com.uuch.android_zxinglibrary.tableview;

/**

* Created by wangqiubo on   2018-02-05.

*/

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.LinearLayout;

import android.widget.TextView;

import com.uuch.android_zxinglibrary.R;

import java.util.ArrayList;

import java.util.List;

public class TableActivity extends AppCompatActivity {

private NoScrollListView   mLeft;

private LeftAdapter   mLeftAdapter;

private NoScrollListView   mData;

private DataAdapter   mDataAdapter;

private SyncHorizontalScrollView   mHeaderHorizontal;

private SyncHorizontalScrollView   mDataHorizontal;

private List   mListData;

@Override

protected void onCreate(Bundle   savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.list_row_main_layout);

initView();

}

private void initView(){

mLeft = (NoScrollListView)   findViewById(R.id.lv_left);

mData = (NoScrollListView)   findViewById(R.id.lv_data);

mDataHorizontal =   (SyncHorizontalScrollView) findViewById(R.id.data_horizontal);

mHeaderHorizontal =   (SyncHorizontalScrollView) findViewById(R.id.header_horizontal);

mDataHorizontal.setScrollView(mHeaderHorizontal);

mHeaderHorizontal.setScrollView(mDataHorizontal);

mListData = new   ArrayList<>();

mListData.add(1);

mListData.add(2);

mListData.add(3);

mListData.add(4);

mListData.add(5);

mListData.add(6);

mListData.add(7);

mListData.add(8);

mListData.add(9);

mListData.add(10);

mListData.add(11);

mListData.add(12);

mListData.add(13);

mLeftAdapter= new   LeftAdapter();

mLeft.setAdapter(mLeftAdapter);

mDataAdapter = new   DataAdapter();

mData.setAdapter(mDataAdapter);

}

class LeftAdapter extends   BaseAdapter {

@Override

public int getCount() {

return   mListData.size();

}

@Override

public Object getItem(int   position) {

return   mListData.get(position);

}

@Override

public long getItemId(int   position) {

return position;

}

@Override

public View getView(int   position, View convertView, ViewGroup parent) {

ViewHolder holder =   null;

if (convertView == null)   {

holder = new   ViewHolder();

convertView =   LayoutInflater.from(TableActivity.this).inflate(R.layout.table_column_left_layout,   null);

holder.tvLeft =   (TextView) convertView.findViewById(R.id.tv_left);

convertView.setTag(holder);

} else {

holder = (ViewHolder)   convertView.getTag();

}

holder.tvLeft.setText(第 +   position + 行);

return convertView;

}

class ViewHolder {

TextView tvLeft;

}

}

class DataAdapter extends   BaseAdapter {

@Override

public int getCount() {

return   mListData.size();

}

@Override

public Object getItem(int   position) {

return   mListData.get(position);

}

@Override

public long getItemId(int   position) {

return position;

}

@Override

public View getView(int   position, View convertView, ViewGroup parent) {

ViewHolder holder =   null;

if(convertView ==   null){

holder = new   ViewHolder();

convertView =   LayoutInflater.from(TableActivity.this).inflate(R.layout.achievement_row_layout,   null);

holder.tvData =   (TextView) convertView.findViewById(R.id.tv_data)

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值