电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Android Studio使用recyclerview實現展開和折疊功能(在之前的微信頁面基礎之上)

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

Android中RecyclerView點擊item展開列表詳細內容

效果如下:

Android Studio使用recyclerview實現展開和折疊功能(在之前的微信頁面基礎之上)

Android Studio使用recyclerview實現展開和折疊功能(在之前的微信頁面基礎之上)

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

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() 這兩個方法對變量的操作。將list中前一半作為主布局數據,后一半作為副布局的數據生成。

數據和執行

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('門德爾松'); 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('德國著名作曲家。');}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);}

話不多說,上代碼。

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

總結

到此這篇關于Android Studio使用recyclerview實現展開和折疊(在之前的微信頁面基礎之上)的文章就介紹到這了,更多相關android studio recyclerview實現展開折疊內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: 微信
相關文章:
主站蜘蛛池模板: 水冷式工业冷水机组_风冷式工业冷水机_水冷螺杆冷冻机组-深圳市普威机械设备有限公司 | 【黄页88网】-B2B电子商务平台,b2b平台免费发布信息网 | 纯水电导率测定仪-万用气体检测仪-低钠测定仪-米沃奇科技(北京)有限公司www.milwaukeeinst.cn 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 手术室净化装修-手术室净化工程公司-华锐手术室净化厂家 | 北京浩云律师事务所-法律顾问_企业法务_律师顾问_公司顾问 | 专注提供国外机电设备及配件-工业控制领域一站式服务商-深圳市华联欧国际贸易有限公司 | 山东螺杆空压机,烟台空压机,烟台开山空压机-烟台开山机电设备有限公司 | 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 发光字|标识设计|标牌制作|精神堡垒 - 江苏苏通广告有限公司 | 焊锡丝|焊锡条|无铅锡条|无铅锡丝|无铅焊锡线|低温锡膏-深圳市川崎锡业科技有限公司 | 蔬菜清洗机_环速洗菜机_异物去除清洗机_蔬菜清洗机_商用洗菜机 - 环速科技有限公司 | 高精度-恒温冷水机-螺杆式冰水机-蒸发冷冷水机-北京蓝海神骏科技有限公司 | 一航网络-软件测评官网 | 三价铬_环保铬_环保电镀_东莞共盈新材料贸易有限公司 | 伟秀电气有限公司-10kv高低压开关柜-高低压配电柜-中置柜-充气柜-欧式箱变-高压真空断路器厂家 | 健身器材-健身器材厂家专卖-上海七诚健身器材有限公司 | 荣事达手推洗地机_洗地机厂家_驾驶式扫地机_工业清洁设备 | 云南丰泰挖掘机修理厂-挖掘机维修,翻新,再制造的大型企业-云南丰泰工程机械维修有限公司 | 万濠影像仪(万濠投影仪)百科-苏州林泽仪器 | 3d可视化建模_三维展示_产品3d互动数字营销_三维动画制作_3D虚拟商城 【商迪3D】三维展示服务商 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 自动气象站_农业气象站_超声波气象站_防爆气象站-山东万象环境科技有限公司 | 广州展览制作|展台制作工厂|展览设计制作|展览展示制作|搭建制作公司 | 北京网站建设首页,做网站选【优站网】,专注北京网站建设,北京网站推广,天津网站建设,天津网站推广,小程序,手机APP的开发。 | 螺钉式热电偶_便携式温度传感器_压簧式热电偶|无锡联泰仪表有限公司|首页 | 重庆监控_电子围栏设备安装公司_门禁停车场管理系统-劲浪科技公司 | 提升海外网站流量,增加国外网站访客UV,定制海外IP-访客王 | 商标转让-购买商标专业|放心的商标交易网-蜀易标商标网 | 上海宿田自动化设备有限公司-双面/平面/单面贴标机 | 垃圾处理设备_餐厨垃圾处理设备_厨余垃圾处理设备_果蔬垃圾处理设备-深圳市三盛环保科技有限公司 | 国标白水泥,高标号白水泥,白水泥厂家-淄博华雪建材有限公司 | 防爆暖风机_防爆电暖器_防爆电暖风机_防爆电热油汀_南阳市中通智能科技集团有限公司 | 福州仿石漆加盟_福建仿石漆厂家-外墙仿石漆加盟推荐铁壁金钢(福建)新材料科技有限公司有保障 | 不锈钢酒柜|恒温酒柜|酒柜定制|酒窖定制-上海啸瑞实业有限公司 | 东莞办公家具厂家直销-美鑫【免费3D效果图】全国办公桌/会议桌定制 | 武汉画册印刷厂家-企业画册印刷-画册设计印刷制作-宣传画册印刷公司 - 武汉泽雅印刷厂 | 考勤系统_考勤管理系统_网络考勤软件_政企|集团|工厂复杂考勤工时统计排班管理系统_天时考勤 | 苗木价格-苗木批发-沭阳苗木基地-沭阳花木-长之鸿园林苗木场 | 煤粉取样器-射油器-便携式等速飞灰取样器-连灵动 | 水性漆|墙面漆|木器家具漆|水漆涂料_晨阳水漆官网 | 北京环球北美考试院【官方网站】|北京托福培训班|北京托福培训 | 柔软云母板-硬质-水位计云母片组件-首页-武汉长丰云母绝缘材料有限公司 | 烟气换热器_GGH烟气换热器_空气预热器_高温气气换热器-青岛康景辉 |