android中GridView实现点击查看更多功能示例
发布时间 - 2026-01-10 22:56:10 点击率:次首先来看一下效果图;

先说一下我的需求:查看群成员,如果超过15人则全部显示,如果大于15人则先加载15人,其余的不显示,点击查看更多则加载全部。再来说一下我实现的逻辑:首先呢要判断群成员的人数,如果小于或者等于15就用GridView加载全部数据,隐藏查看更多的按钮。如果大于15人,则显示加载更多的按钮,先加载15条数据,其余的不加载,点击按钮之后获取全部数据放到自己写好的adapter里然后加载刷新,再隐藏加载更多的按钮。
好了,来看代码:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@color/white"
android:orientation="vertical">
<GridView
android:id="@+id/grid_member"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="15dp"
android:layout_weight="1"
android:horizontalSpacing="15dp"
android:numColumns="5"
android:verticalSpacing="15dp"></GridView>
<LinearLayout
android:id="@+id/llayout_look_more"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/btn_white_selector"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:drawableRight="@mipmap/arrow_down_qun"
android:gravity="center"
android:paddingBottom="30dp"
android:paddingTop="15dp"
android:text="查看更多群成员 "
android:textSize="@dimen/small_middle_text_size" />
</LinearLayout>
</LinearLayout>
然后是activity中部分判断的核心代码:
首先第一次判断和加载
if (mListData.size() > 15) {
mGroupManageAdapter.setNumber(false);
mLlayoutLookMore.setVisibility(View.VISIBLE);
} else {
mGroupManageAdapter.setNumber(true);
mLlayoutLookMore.setVisibility(View.GONE);
}
mGroupManageAdapter.replace(mListData);
点击按钮之后的代码:
mGroupManageAdapter.setNumber(true); mLlayoutLookMore.setVisibility(View.GONE); mGroupManageAdapter.replace(mListData);
再贴上我的adapter部分代码:
public class GroupManageAdapter extends BaseAdapter {
private Context mContext;
private List<PublicEntity> mList = new ArrayList<>();
private boolean mListType = true;//是否显示全部成员,默认显示
public void setNumber(boolean mListType) {
this.mListType = mListType;
}
public GroupManageAdapter(Context mContext) {
this.mContext = mContext;
}
public void replace(List<PublicEntity> itemDataTypes) {
mList.clear();
if (itemDataTypes.size() > 0) {
mList.addAll(itemDataTypes);
notifyDataSetChanged();
}
}
@Override
public int getCount() {
return mListType ? mList.size() : 15;
}
@Override
public Object getItem(int position) {
return mList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
convertView = View.inflate(mContext, R.layout.item_group_manage_head, null);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
String mPic = mList.get(position).getTextOne();
if (mPic != null && mPic.length() > 0) {
Picasso.with(mContext).load(mPic)
.placeholder(R.mipmap.s_hearder_user_nor)
.error(R.mipmap.s_hearder_user_nor)
.transform(new CircleTransform()).into(holder.mImgHead);
} else {
holder.mImgHead.setImageResource(R.mipmap.s_hearder_user_nor);
}
//这里是删除成员的标记,不管。
if (mList.get(position).ismIsShowDeleteIcon()) {
holder.mImgIconDelete.setVisibility(View.VISIBLE);
} else {
holder.mImgIconDelete.setVisibility(View.GONE);
}
holder.mTvName.setText(mList.get(position).getText());
return convertView;
}
static class ViewHolder {
@BindView(R.id.img_head)
ImageView mImgHead;
@BindView(R.id.img_icon_delete)
ImageView mImgIconDelete;
@BindView(R.id.tv_name)
TextView mTvName;
ViewHolder(View view) {
ButterKnife.bind(this, view);
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# gridview点击显示更多
# android点击查看更多
# android实现点击更多
# Android GridView简单实例
# Android中控件GridView实现设置行列分割线的方法示例
# Android使用GridView实现日历功能示例(详细代码)
# Android使用GridView实现日历的简单功能
# Android自定义DataGridView数据表格控件
# Android 利用ViewPager+GridView实现首页导航栏布局分页效果
# Android 中 GridView嵌套在ScrollView里只有一行的解决方法
# Android GridView实现动画效果实现代码
# 加载
# 查看更多
# 人则
# 好了
# 再来
# 点击查看
# 就用
# 贴上
# 先说
# 写好
# 大家多多
# 多则
# arrow_down_qun
# mipmap
# drawableRight
# paddingBottom
# text
# paddingTop
# center
# btn_white_selector
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
教你用AI将一段旋律扩展成一首完整的曲子
Android 常见的图片加载框架详细介绍
网易LOFTER官网链接 老福特网页版登录地址
如何获取PHP WAP自助建站系统源码?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
Laravel如何创建自定义中间件?(Middleware代码示例)
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
如何快速建站并高效导出源代码?
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
BootStrap整体框架之基础布局组件
如何快速重置建站主机并恢复默认配置?
如何在万网自助建站中设置域名及备案?
js实现获取鼠标当前的位置
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法
网站图片在线制作软件,怎么在图片上做链接?
javascript日期怎么处理_如何格式化输出
米侠浏览器网页背景异常怎么办 米侠显示修复
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
怎样使用JSON进行数据交换_它有什么限制
JavaScript模板引擎Template.js使用详解
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
EditPlus中的正则表达式 实战(2)
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
如何在搬瓦工VPS快速搭建网站?
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
大同网页,大同瑞慈医院官网?
文字头像制作网站推荐软件,醒图能自动配文字吗?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
深入理解Android中的xmlns:tools属性
独立制作一个网站多少钱,建立网站需要花多少钱?
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
Bootstrap CSS布局之列表
香港服务器WordPress建站指南:SEO优化与高效部署策略
javascript基本数据类型及类型检测常用方法小结
如何在阿里云虚拟主机上快速搭建个人网站?
如何用PHP快速搭建CMS系统?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
如何在万网主机上快速搭建网站?
如何在阿里云香港服务器快速搭建网站?
Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
Laravel怎么在Blade中安全地输出原始HTML内容
如何快速搭建安全的FTP站点?
详解jQuery停止动画——stop()方法的使用

