GithubHelp home page GithubHelp logo

recyclerviewdemo's Introduction

RecyclerViewDemo

Gradle依赖

    dependencies {
            implementation 'com.even:commonrv:1.0.4'
    }

1、使用单布局使用方法

    singleAdapter = new BaseRecyclerAdapter<String>(dataLists, R.layout.item_single) {
        @Override
        protected void covert(BaseViewHolder holder, String item, int position) {
            holder.setText(R.id.tvSingle, item);
        }
    };
    recyclerView.setLayoutManager(new LinearLayoutManager(activity));
    recyclerView.addItemDecoration(new ItemDecorationWithMargin().setMargin(DisplayUtil.dip2px(10)));
    recyclerView.setAdapter(singleAdapter);

2、多布局使用

    int[] layoutIds = new int[]{R.layout.item_no_data, R.layout.item_single};
    MultiLayoutAdapter<MultipleBean> multipleAdapter = new MultiLayoutAdapter<MultipleBean>(dataList, layoutIds) {
        @Override
        protected int getItemType(int position) {
            if (TextUtils.isEmpty(dataList.get(position).getValue())) {
                return 0;
            } else {
                return 1;
            }
        }

        @Override
        protected void coverts(BaseViewHolder holder, MultipleBean item, int position, int itemType) {
            if (itemType == 0) {
                holder.setText(R.id.tvRemind, "咋回事小老弟,还没有数据");
            } else {
                holder.setText(R.id.tvSingle, item.getValue());
            }

        }
    };
    recyclerView.setLayoutManager(new LinearLayoutManager(activity));
    recyclerView.addItemDecoration(new ItemDecorationWithMargin().setMargin(DisplayUtil.dip2px(10)));
    recyclerView.setAdapter(multipleAdapter);

3、悬浮标题使用

    int[] layoutIds = new int[]{R.layout.item_sticky_title, R.layout.item_single};
    stickyAdapter = new MultiLayoutAdapter<StickyBean>(dataLists, layoutIds) {
        @Override
        protected int getItemType(int position) {
            return dataLists.get(position).getType();

        }

        @Override
        protected void coverts(BaseViewHolder holder, StickyBean item, int position, int itemType) {
            if (itemType == 0) {
                holder.setText(R.id.tvTitle, item.getName());
                holder.itemView.setTag(true);
            } else {
                holder.setText(R.id.tvSingle, item.getName());
                holder.itemView.setTag(false);
            }


        }
    };
    recyclerView.setLayoutManager(new LinearLayoutManager(activity));
    recyclerView.addItemDecoration(new StickyItemDecoration(0));
    recyclerView.setAdapter(stickyAdapter);

4、普通复杂界面使用

@Override
protected void initView() {
    recyclerView = findViewById(R.id.recyclerView);

    adapter = new BaseListPagerAdapter(dataLists);
    recyclerView.setLayoutManager(new LinearLayoutManager(activity));
    recyclerView.addItemDecoration(new ItemDecorationWithMargin().setMargin(DisplayUtil.dip2px(10)));
    recyclerView.setAdapter(adapter);
}

@Override
protected void initData() {
    PhotoBean photoBean = new PhotoBean(R.mipmap.ic_launcher, "小老弟");
    ClassifyBean classifyBean = new ClassifyBean("RecyclerDemo", "RecyclerView常用用法封装");
    final InputBean inputBean = new InputBean();
    inputBean.setOnClickListener(new OnPagerItemClickListener() {
        @Override
        public void onClickListener() {
            shortToast(inputBean.getInputText());
        }
    });

    dataLists.add(photoBean);
    dataLists.add(classifyBean);
    dataLists.add(inputBean);


}

!image

    详细使用请参照demo

recyclerviewdemo's People

Contributors

panyiyiyi avatar

Watchers

IDO avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.