国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

Android Studio使用recyclerview實(shí)現(xiàn)展開(kāi)和折疊功能(在之前的微信頁(yè)面基礎(chǔ)之上)

瀏覽:62日期:2022-06-07 18:17:20

Android中RecyclerView點(diǎn)擊item展開(kāi)列表詳細(xì)內(nèi)容

效果如下:

Android Studio使用recyclerview實(shí)現(xiàn)展開(kāi)和折疊功能(在之前的微信頁(yè)面基礎(chǔ)之上)

Android Studio使用recyclerview實(shí)現(xiàn)展開(kāi)和折疊功能(在之前的微信頁(yè)面基礎(chǔ)之上)

依然是xml文件的設(shè)計(jì),使用了兩個(gè)RelativeLayout,zu作為主布局和副布局,里面都加入textview顯示內(nèi)容,在副布局里加入一個(gè)imageview在這里插入圖片描述作為子內(nèi)容的背景圖,代碼如下:

tab01.xml

<?xml version='1.0' encoding='utf-8'?><LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:app='http://schemas.android.com/apk/res-auto' android:layout_width='match_parent' android:layout_height='wrap_content' xmlns:tools='http://schemas.android.com/tools' android:orientation='vertical'><RelativeLayout android: android:layout_width='match_parent' android:layout_height='50dp' android:background='#00574B'> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:textSize='30dp' android:layout_centerInParent='true' android:textColor='@android:color/white' tools:text='主布局' /> </RelativeLayout> <RelativeLayout android: android:layout_width='match_parent' android:layout_height='100dp' android:background='#ffffff' android:visibility='gone'> <ImageView android: android:layout_width='wrap_content' android:layout_height='wrap_content' /> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_centerInParent='true' android:textSize='25dp' android:textColor='#000000' tools:text='副部局' /> </RelativeLayout></LinearLayout>

activity_main.xml

<?xml version='1.0' encoding='utf-8'?><LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='match_parent' android:layout_height='match_parent' android:orientation='vertical'> <include layout='@layout/top' /> <FrameLayout android: android:layout_width='match_parent' android:layout_height='0dp' android:layout_weight='1'> <android.support.v7.widget.RecyclerView android: android:layout_width='match_parent' android:layout_height='match_parent'> </android.support.v7.widget.RecyclerView> </FrameLayout> <include layout='@layout/bottom' /></LinearLayout>

核心代碼Adapter:

public class adapter extends RecyclerView.Adapter <adapter.myviewholder>{ private List<String> mlist=new ArrayList<>(); private Context context; private View inflater; private static final String tag=adapter.class.getSimpleName(); private int expandedPosition=1; private myviewholder mViewHolder; public adapter(Context context) {//,List<String> list this.context=context; } public void setExpandCollapseDataList(List<String> list){ mlist=list; notifyDataSetChanged(); } @Override public adapter.myviewholder onCreateViewHolder(ViewGroup viewGroup, int viewType) { inflater= LayoutInflater.from(context).inflate(R.layout.tab01,viewGroup,false); myviewholder myviewholder=new myviewholder(inflater); return myviewholder; } @Override public void onBindViewHolder(final adapter.myviewholder myviewholder, final int j) { myviewholder.textviewparent.setText(mlist.get(j)); myviewholder.imageview.setImageResource(R.drawable.p1); myviewholder.textviewchild.setText(mlist.get(j+15)); final boolean isExpanded=j==expandedPosition; myviewholder.rlChild.setVisibility(isExpanded ? View.VISIBLE : View.GONE); myviewholder.rlParent.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mViewHolder != null) { mViewHolder.rlChild.setVisibility(View.GONE); notifyItemChanged(expandedPosition); } expandedPosition = isExpanded ? -1 : myviewholder.getAdapterPosition(); mViewHolder = isExpanded ? null : myviewholder; notifyItemChanged(myviewholder.getAdapterPosition()); } }); } @Override public int getItemCount() { return mlist == null ? 0 : mlist.size()/2; } class myviewholder extends RecyclerView.ViewHolder{ private ImageView imageview; RelativeLayout rlParent, rlChild; TextView textviewparent, textviewchild; public myviewholder(View itemView) { super(itemView); rlParent = itemView.findViewById(R.id.rl_parent); rlChild = itemView.findViewById(R.id.rl_child); textviewparent = itemView.findViewById(R.id.textViewparent); textviewchild = itemView.findViewById(R.id.textViewchild); imageview=itemView.findViewById(R.id.imageview); } }}

主要的代碼是 ViewHolder 中 bindView() , onClick() 這兩個(gè)方法對(duì)變量的操作。將list中前一半作為主布局?jǐn)?shù)據(jù),后一半作為副布局的數(shù)據(jù)生成。

數(shù)據(jù)和執(zhí)行

private void initmyData() { list.add('路德維希·凡·貝多芬'); list.add('蕭友梅'); list.add('阿炳'); list.add('冼星海'); list.add('聶耳'); list.add('施光南'); list.add('弗里德里克·肖邦'); list.add('羅伯特·舒曼'); list.add('莫扎特'); list.add('約瑟夫·海頓'); list.add('舒伯特'); list.add('巴赫'); list.add('弗侖茲·李斯特'); list.add('約翰奈斯·勃拉姆斯'); list.add('門(mén)德?tīng)査?); list.add('德國(guó)作曲家、鋼琴家、指揮家,被稱(chēng)為樂(lè)圣。'); list.add('中國(guó)專(zhuān)業(yè)音樂(lè)教育的奠基人和開(kāi)拓者、音樂(lè)理論家、作曲家。'); list.add('民間音樂(lè)家、二胡演奏家,譽(yù)為演奏能手。'); list.add('中國(guó)近代作曲家、鋼琴家--人民音樂(lè)家。'); list.add('中國(guó)音樂(lè)家--時(shí)代歌手。'); list.add('譽(yù)為時(shí)代歌手,現(xiàn)代抒情歌曲作曲家。'); list.add('譽(yù)為鋼琴詩(shī)人,波蘭作曲家、鋼琴家。'); list.add('德國(guó)著名作曲家、音樂(lè)評(píng)論家。'); list.add('奧地利作曲家,被譽(yù)為神童。'); list.add('奧地利作曲家,維也納古典派奠基者之一。'); list.add('奧地利作曲家--前所未有的最富詩(shī)意的音樂(lè)家。'); list.add('德國(guó)最偉大的古典作曲家之一,管風(fēng)琴演奏家。'); list.add('天才的匈牙利作曲家、鋼琴家、指揮家和音樂(lè)活動(dòng)家。'); list.add('德國(guó)十九世紀(jì)后半葉最卓越的、古典樂(lè)派最后的一位作曲家。'); list.add('德國(guó)著名作曲家。');}private void initView1() { adapter adapter = new adapter(this); RecyclerView recyclerView = findViewById(R.id.recyclerView); recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerView.setHasFixedSize(true); recyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); recyclerView.setAdapter(adapter); adapter.setExpandCollapseDataList(list);}

話(huà)不多說(shuō),上代碼。

github源碼地址:鏈接: https://github.com/YL009/yl.

總結(jié)

到此這篇關(guān)于Android Studio使用recyclerview實(shí)現(xiàn)展開(kāi)和折疊(在之前的微信頁(yè)面基礎(chǔ)之上)的文章就介紹到這了,更多相關(guān)android studio recyclerview實(shí)現(xiàn)展開(kāi)折疊內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: 微信
相關(guān)文章:
主站蜘蛛池模板: 亚洲欧美日韩国产精品26u | 欧美视频一 | 欧美高清另类自拍视频在线看 | 制服丝袜在线视频香蕉 | 国产一级毛片免 | 韩日一级视频 | 国产在线91精品入口首页 | 草草影院ccyy免费看片 | 久久久毛片 | 在线はじめてのおるすばん | 国产合集91合集久久日 | 台湾一级特黄精品大片 | 国产精品成人观看视频网站 | 国产67194 | 亚洲成人在线网 | 亚州免费视频 | 国产精品久久久久久搜索 | 波多野结衣中文视频 | 亚洲男人的天堂久久无 | 一 级做人爱全视频在线看 一本不卡 | 澳门一级特黄真人毛片 | 亚洲欧美在线精品一区二区 | 国产亚洲精品久久久久久久久激情 | 美女黄色在线 | 波少野结衣在线播放 | 91成人免费视频 | 日韩永久在线观看免费视频 | 久久久久亚洲精品一区二区三区 | 99久久免费看精品国产一区 | 免费看v片网站 | 99成人免费视频 | 欧美另类videosbestsex久久 | 国产精品视频久久久久 | 九九99香蕉在线视频免费 | 波多久久夜色精品国产 | 国产免费网 | 成人69| 毛片韩国 | 国产制服 国产制服一区二区 | 国产午夜三级 | 国产国语在线播放视频 |