国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:86日期:2022-09-17 17:48:48
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)效果

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

思路

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

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

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

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

代碼

代碼實(shí)現(xiàn)比較簡(jiǎn)單唯一要說(shuō)的就是通過(guò)一個(gè)Flag來(lái)更改折疊狀態(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方法中 來(lái)切換數(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è)頁(yè)面 調(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è)置了固定尺寸 他是沒(méi)有那種折疊效果的 會(huì)占的空間比較大 數(shù)據(jù)多少 排版很難看

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

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 祥云县| 治县。| 方山县| 平定县| 中方县| 木里| 寻甸| 积石山| 旬阳县| 河津市| 泸溪县| 东方市| 沽源县| 东兰县| 惠州市| 古交市| 铜鼓县| 中牟县| 余江县| 巴林左旗| 石楼县| 陇川县| 安平县| 石棉县| 新巴尔虎左旗| 平湖市| 岫岩| 黔江区| 隆子县| 舟山市| 长垣县| 囊谦县| 贡觉县| 东莞市| 额济纳旗| 邢台市| 溧阳市| 扎赉特旗| 南华县| 墨竹工卡县| 且末县|