android中GridView实现点击查看更多功能示例
程序员文章站
2023-12-19 09:22:16
首先来看一下效果图;
先说一下我的需求:查看群成员,如果超过15人则全部显示,如果大于15人则先加载15人,其余的不显示,点击查看更多则加载全部。再...
首先来看一下效果图;
先说一下我的需求:查看群成员,如果超过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); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
android中GridView实现点击查看更多功能示例
-
Android 实现WebView点击图片查看大图列表及图片保存功能
-
Android中GridView布局实现整体居中方法示例
-
Android实现点击WebView界面中图片滑动浏览与保存图片功能
-
Android开发实现ListView点击item改变颜色功能示例
-
Android开发实现的图片点击切换功能示例
-
Android开发实现的文本折叠点击展开功能示例
-
Android在类微信程序中实现蓝牙聊天功能的示例代码
-
Android实现点击WebView界面中图片滑动浏览与保存图片功能
-
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】