Android应用开发android 自定义表格
白羽 2019-04-15 来源 :网络 阅读 1452 评论 0

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

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


Android应用开发android 自定义表格


本文通过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<string>   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频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程