TableLayout实现gridview嵌套gridview效果

原创 2017年08月30日 00:43:57

这里写图片描述这里写图片描述

自定义linearlayout

public class CurrenPositionView extends LinearLayout {
    //每行item个数
    private final int ROW_NUM = 5;
    private TextView titleView;
    private ZhaoPin data;
    private TableLayout tableLayout;
    private LayoutInflater layoutInflater;
    private int viewId;

    public CurrenPositionView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public CurrenPositionView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CurrenPositionView(Context context) {
        super(context);
    }

    public ZhaoPin getData() {
        return data;
    }

    public void setData(ZhaoPin data) {
        this.data = data;
    }

    private void initView() {
        layoutInflater = LayoutInflater.from(getContext());
        View rootView = layoutInflater.inflate(R.layout.pulldown_view, this);
        titleView = (TextView) rootView.findViewById(R.id.job_name_text);
        tableLayout = (TableLayout) rootView.findViewById(R.id.job_name_table);
        tableLayout.setStretchAllColumns(true);
        setTitleStr(data.getName());
        //初始化表格数据
        int h = data.getJobtype().size() / ROW_NUM;
        int len = data.getJobtype().size() % ROW_NUM;
        int location = 0;
        if (len != 0)
            h += 1;
        for (int n = 1; n <= h; n++) {
            TableRow row = new TableRow(getContext());
            int length = n == h ? len : ROW_NUM;
            for (int m = 0; m < length; m++) {
                //mview外面一层数据
                MyTextView mview = (MyTextView) layoutInflater.inflate(R.layout.table_row_item, null);
                mview.setText(data.getJobtype().get(location).getName());
                mview.setTag("" + viewId + location);
                mview.setGravity(Gravity.CENTER);
                mview.setTextColor(Color.rgb(0,0,0));
                mview.setTextSize(30);
                mview.setOnClickListener(((MainActivity) getContext()).new OnItemClick(data, location, n, tableLayout, mview));
                row.addView(mview);
                location++;
            }
            // 每一列 tablerow 增加一个下拉的layout
            View view = layoutInflater.inflate(R.layout.expand_item, null);
            view.setTag(n);
            view.setVisibility(View.GONE);
            tableLayout.addView(row);
            tableLayout.addView(view);
        }
    }

    public void init() {
        initView();
    }

    public void setTitleStr(CharSequence text) {
        titleView.setText(text);
    }

    public int getViewId() {
        return viewId;
    }

    public void setViewId(int viewId) {
        this.viewId = viewId;
    }
}

不多说,附源码:

Demo下载,点击此处

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

c#实现图片gif去水印

做项目时候会遇到在网络上爬的源文件,png图片或者动画gif背景都带有水印,“百度出品”“不得转载”等等,这样出来的文件放在项目里面当做自己的资源来用肯定是不可以的,现在就来用lockbits替换背景...

Android上传文件

Android开发经常遇到要上传文件,我在网上找了一些文件上传的解决方案,自己做了一个整合。JavaWeb端参考:JavaWeb学习总结(五十)——文件上传和下载 直接上代码: 1,HttpURLCo...

TableLayout实现gridview嵌套gridview效果

  • 2017年08月29日 16:19
  • 23.88MB
  • 下载

tableLayout 实现类似gridview的效果 带分割线

/** * 设置表格的数据 * @param tableDatas */ public void setTableLayout(List> tableDatas) { TableLa...

RecyclerView下实现 ListView嵌套GridView 复杂效果

导言:          RecyclerView使用也有一段时间了 他的出现是对ListView,GridView的进化。但是我们要实现一些复杂的布局,比如这个布局,那我们该怎么办呢?别急,不...

GridView效果实现

  • 2015年04月01日 17:32
  • 669KB
  • 下载

阻尼回弹效果的ScrollView嵌套GridView

以前写过一篇带阻尼回弹效果的ScrollView,但是有些小问题,于是又重新整理了一下,这篇文章一是一个带阻尼的Scrollview,再个就是Scrollview嵌套GridView实现,而GridV...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TableLayout实现gridview嵌套gridview效果
举报原因:
原因补充:

(最多只允许输入30个字)