Android--ListView点击Item展开的实现
2015-06-18 17:16
791 查看
最近想写一个小程序,为了实现点击ListView展开的效果,从网上找了一下,也没找到好的实现方法,跟自己想的思路差不多,最后决定还是自己想好了。
一开始是想使用 ExpandableListView 实现点击展开的,做了一下还行效果出来了。
最后还是想使用 ListView来实现。
思路是这样的:
1、先定义ListView里Item的xml布局:
蓝色框住的地方是隐藏的,这里为了显示效果才显示出来。
2、在Activity里定义ListView的点击事件 setOnItemClickListener,点击之后显示隐藏区,就是我们要实现的展开效果:
3、为三个展开区域的按钮添加点击事件
基本的思路就是这样了。
附上源码:文件不知道怎么上传呢?
直接到GitHub下砸吧:https://github.com/StarsAaron/MobileAssistant.git
要使用Android studio打开哦!!!!!!!
一开始是想使用 ExpandableListView 实现点击展开的,做了一下还行效果出来了。
最后还是想使用 ListView来实现。
思路是这样的:
1、先定义ListView里Item的xml布局:
蓝色框住的地方是隐藏的,这里为了显示效果才显示出来。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> <RelativeLayout android:layout_width="match_parent" android:layout_height="60dp" android:id="@+id/rl_appitem"> <ImageView android:layout_width="50dp" android:layout_height="50dp" android:id="@+id/iv_icon" android:layout_alignParentTop="true" android:layout_alignParentStart="true" android:layout_marginLeft="10dp" android:layout_marginTop="5dp" android:layout_marginBottom="5dp" android:layout_marginRight="5dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="软件名" android:id="@+id/tv_name" android:layout_alignTop="@+id/iv_icon" android:layout_toEndOf="@+id/iv_icon" android:textSize="20dp" android:textColor="@color/text_black" android:singleLine="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="安装位置" android:id="@+id/tv_location" android:layout_below="@+id/tv_name" android:layout_toEndOf="@+id/iv_icon" android:textSize="16dp" android:singleLine="true" /> </RelativeLayout> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="48dp" android:layout_alignParentBottom="true" android:layout_alignStart="@+id/iv_icon" android:gravity="center_vertical" android:background="#ffdadada" <span style="color:#FF0000;"> android:visibility="gone"</span> android:id="@+id/ll_app_expand"> <TextView android:layout_width="wrap_content" android:layout_height="40dp" android:textAppearance="?android:attr/textAppearanceMedium" android:text="卸载" android:id="@+id/tv_uninstall" android:layout_weight="1" android:drawableLeft="@mipmap/img1" android:gravity="center_vertical" android:layout_marginLeft="20dp" /> <TextView android:layout_width="wrap_content" android:layout_height="40dp" android:textAppearance="?android:attr/textAppearanceMedium" android:text="打开" android:id="@+id/tv_open" android:layout_weight="1" android:drawableLeft="@mipmap/img2" android:gravity="center_vertical" /> <TextView android:layout_width="wrap_content" android:layout_height="40dp" android:textAppearance="?android:attr/textAppearanceMedium" android:text="分享" android:id="@+id/tv_share" android:layout_weight="1" android:drawableLeft="@mipmap/img3" android:gravity="center_vertical" android:layout_marginRight="20dp" /> </LinearLayout> </LinearLayout>
2、在Activity里定义ListView的点击事件 setOnItemClickListener,点击之后显示隐藏区,就是我们要实现的展开效果:
appList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if (position != 0 && position != (userAppListInfo.size() + 1)) { LinearLayout ll = (LinearLayout) view.findViewById(R.id.ll_app_expand); TextView tv_uninstall = (TextView) view.findViewById(R.id.tv_uninstall); TextView tv_open = (TextView) view.findViewById(R.id.tv_open); TextView tv_share = (TextView) view.findViewById(R.id.tv_share); tv_uninstall.setOnClickListener(new MyOnclickListener()); tv_open.setOnClickListener(new MyOnclickListener()); tv_share.setOnClickListener(new MyOnclickListener()); //显示隐藏的bar ll.setVisibility(View.VISIBLE); if (position < (userAppListInfo.size() + 1)) { appInfo = userAppListInfo.get(position - 1); } else { appInfo = sysAppListInfo.get(position-(userAppListInfo.size()+2)); } } } });
3、为三个展开区域的按钮添加点击事件
基本的思路就是这样了。
附上源码:文件不知道怎么上传呢?
直接到GitHub下砸吧:https://github.com/StarsAaron/MobileAssistant.git
要使用Android studio打开哦!!!!!!!
相关文章推荐
- 用VBox虚拟机安装Android 屏幕90度翻转竖屏设置
- 使用ECharts碰到的一些问题和解决方法
- GitHub上史上最全的Android开源项目分类汇总
- Android clean后出现很多错误解决办法
- Universal Image Loader for Android一些方法的参数
- 动态改变view的style
- Android 背景模糊专题
- 在android中 TextUtils.isEmpty()和equals()方法的用法
- Android Studio中常用设置与快捷键
- 王立平--include在Android应用
- [Android Lint] xxx is not translated in xxx 的解决方法
- Android 查看内存使用情况
- android 数据存储的几种方式
- Android 开发实战
- Android-扫描二维码、生成二维码(Zxing库)
- Android查看触屏消息,确认触屏区域好坏
- android 单元测试---robotium测试方法名
- Android签名问题之Proguard returned with error code 1. See console
- Android 命令产生kernel panic
- Android设计模式(十三)--状态模式