欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文搞懂Android RecyclerView點(diǎn)擊展開、折疊效果的實(shí)現(xiàn)代碼

 更新時(shí)間:2021年06月23日 14:30:13   作者:呂氏春秋i  
雖然在日常開發(fā)中已經(jīng)多次接觸過RecycleView,但也只是用到其最基本的功能,并沒有深入研究其他內(nèi)容。接下來將抽出時(shí)間去了解RecycleView的相關(guān)內(nèi)容,這篇文章主要是介紹Android RecyclerView點(diǎn)擊展開、折疊效果的實(shí)現(xiàn)方式,一起看看吧

RecyclerView是什么

       RecycleView是Android5.0后谷歌推出的一個(gè)用于在有限的窗口中展示大量數(shù)據(jù)集的控件,位于support-v7包中。它可以實(shí)現(xiàn)與ListView和GridView一樣的效果,提供了一種插拔式的體驗(yàn),高度的解耦,異常的靈活,只需設(shè)置其提供的不同的LayoutManager,ItemAnimator和ItemDecoration,就能實(shí)現(xiàn)不同的效果。

RecyclerView的優(yōu)點(diǎn)

   1、支持局部刷新。
   2、可以自定義item增刪時(shí)的動(dòng)畫。
   3、能夠?qū)崿F(xiàn)item拖拽和側(cè)滑刪除等功能。
   4、默認(rèn)已實(shí)現(xiàn)View的復(fù)用,而且回收機(jī)制更加完善。

實(shí)現(xiàn)效果

在這里插入圖片描述

思路

我使用的是第三方適配器BaseRecyclerViewAdapterHelper

但是遇到一個(gè)問題
這個(gè)適配器2.0和3.0不兼容 而2.0版本 沒有折疊效果這個(gè)組件 我用3.0版本 gradle一直依賴不了
怎么辦?

2

只能尋找其他方法來實(shí)現(xiàn) 我想到的是在用兩層 RecyclerView的辦法
在第一次的item布局里嵌套第二次RecyclerView
覺得可行 就開始寫代碼 最終結(jié)果還可以優(yōu)化 就是上面的樣子 實(shí)現(xiàn)了點(diǎn)擊折疊和展開的效果

代碼

代碼實(shí)現(xiàn)比較簡單
唯一要說的就是通過一個(gè)Flag來更改折疊狀態(tài)
在第一層的adapter中可以設(shè)置一個(gè)標(biāo)記位

//默認(rèn)是關(guān)閉
 private boolean isOpen = false;
 
 public boolean isOpen() {
        return isOpen;
    }

    public void setOpen(boolean open) {
        isOpen = open;
    }

然后在 convert方法中 來切換數(shù)據(jù)的狀態(tài)

 if (isOpen) {
            mRecyclerView.setVisibility(View.VISIBLE);
            linearLayout.setVisibility(View.VISIBLE);
            view.setBackgroundResource(R.mipmap.icon_more_than_open);
        } else {
            mRecyclerView.setVisibility(View.GONE);
            linearLayout.setVisibility(View.GONE);
            view.setBackgroundResource(R.mipmap.icon_more_than);
        }

最后在數(shù)據(jù)展示的那個(gè)頁面 調(diào)用Adapter里的折疊方法

 mAdapter.setOnItemClickListener((adapter, view, position) -> {
            if (mAdapter.isOpen()) {
                mAdapter.setOpen(false);
            } else {
                mAdapter.setOpen(true);
            }
            //這個(gè)是渲染數(shù)據(jù)后 刷新 不然看不到數(shù)據(jù)
            mAdapter.notifyDataSetChanged();
        });

最后提示
adapter里的布局 建議設(shè)置成 wrap_content

android:layout_width="match_parent"
  android:layout_height="wrap_content"

為什么呢?
如果設(shè)置了固定尺寸 他是沒有那種折疊效果的 會(huì)占的空間比較大 數(shù)據(jù)多少 排版很難看

以上就是Android RecyclerView點(diǎn)擊展開、折疊效果的實(shí)現(xiàn)方式的詳細(xì)內(nèi)容,更多關(guān)于Android RecyclerView點(diǎn)擊展開折疊的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論