android gridview默认显示部分数据,点击按钮显示全部,再点击回到默认状态,选中变颜色

Unity手游UI性能优化:手把手实现高性能无限循环滚动列表 在Unity游戏开发中,UI性能优化是提升玩家体验的关键环节,尤其是处理大量数据列表时。传统ScrollView组件会为每条数据实例化UI项,导致内存占用高、CPU负载大,在滑动时易引发卡顿。其核心原理在于对象池与数据绑定机制的结合,通过复用有限的UI项来动态显示海量数据,将性能消耗从O(N)降至O(C)。这项技术的核心价值在于显著降低内存占用、减少实例化开销、提升滚动流畅度,是解决排行榜、背包等界面性能瓶颈的工程实践利器。本文聚焦于UGUI体系,通过实现一个通用的RecyclableScrollRect组 阅读详情
首先gridview中先确定有两行,每行三列,放第五个数据之后动态给list添加一个“更多分类”的按钮,点击“更多分类之后”展开显示全部,并且在最后加上“收起”的按钮,在点击“收起”之后回到两行的状态并且出现“更多分类”按钮,隐藏“收起”按钮。并且“更多分类”、“收起”和被选中变色。上代码:
	//加载数据
	private void initView() {
		list.add("苹果");
		list.add("香蕉");
		list.add("梨");
		list.add("火龙果");
		list.add("鲜橙");
		list.add("草莓");
		list.add("樱桃");
		list.add("菠萝");
		list.add("哈密瓜");
		list.add("葡萄");
		list.add("榴莲");
		
		gv=(GridView) findViewById(R.id.gv);
	}
数据随便加的,用list是因为实际使用中大多用list得到数据。

private void getGridView() {
		if(list.size()>6 ){				//>6即为两列 超过两列隐藏
			list1 = new ArrayList<String>();
			for(int i=0;i<5;i++){
				list1.add(list.get(i));
			}
			list1.add("更多分类∨");
			gvadapter=new GvFenLeiAdapter(list1,this);
			gv.setAdapter(gvadapter);
		}else {
			gvadapter=new GvFenLeiAdapter(list,this);
			gv.setAdapter(gvadapter);	
		}
		
		gv.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				gvadapter.setSelectItem(position);
				
				if(list1.get(position).contains("更多分类")){	//
					gvadapter.setSelectItem(-1);
					list1.clear();
					list1.addAll(list);
					list1.add("收起∧");
					gvadapter.notifyDataSetChanged();
				}else if (list1.get(position).contains("收起")) {
					gvadapter.setSelectItem(-1);
					list1.clear();
					for(int i=0;i<5;i++){
						list1.add(list.get(i));
					}
					list1.add("更多分类∨");
					gvadapter.notifyDataSetChanged();
				}else {
					gvadapter.notifyDataSetChanged();
				}
				
			}
		});
在这里进行了动态加减按钮,最后是adapter代码:

@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		convertView =LayoutInflater.from(context).inflate(R.layout.grid_view_item, null);
		TextView tv = (TextView) convertView.findViewById(R.id.tv); 
		tv.setText(list.get(position));
		
		if(list.get(position).contains("更多") || list.get(position).contains("收起")){
			tv.setTextColor(context.getResources().getColor(R.color.title_bar_title));
		}else if (position == selectItem) {
			tv.setTextColor(context.getResources().getColor(R.color.title_bar_title));
			
		} else {
			tv.setBackgroundColor(context.getResources().getColor(R.color.click));
			tv.setTextColor(context.getResources().getColor(R.color.shouyetext1_color));
		}
		return convertView;
	}
	public void setSelectItem(int position) {
		selectItem=position;
	}
东西写得可能有点繁琐,也有点小缺陷,请多多指教。最后效果是这样的:



源码

Android GridView使用(详细版) 在学习GridView 之前,我们需要先了解GridView的继承关系,GridView跟ListView很类似,Listview主要以列表形式显示数据,GridView则是以网格形式显示数据,掌握ListView使用方法后,会很轻松的掌握GridView的使用方法。 阅读详情

相关推荐

【WorkBuddy】WorkBuddy 智能体快速上手:从零到一的实践指南

文章摘要: 传统自动化脚本难以应对灵活多变的自然语言需求,导致逻辑复杂、维护成本高。智能体(Agent)通过理解语义意图、动态决策和松耦合组件解决了这些问题。WorkBuddy采用声明式配置,通过可视化界面定义意图、实体和对话策略,无需编码即可快速构建智能体。其核心组件包括意图分类、实体提取、对话策略、故事样本和回退机制,适用于客服支持、知识问答等高频场景。通过环境准备(Python/Node.js/Redis)和简单配置,用户可以快速搭建可运行的智能体,显著提升自动化效率。

ruiqideng的博客 1616

android GridView 默认选中及选中item

&lt;style name="item_selector"&gt; &lt;item name="android:layout_width"&gt;wrap_content&lt;/item&gt; &lt;item name="android:layout_height"&gt;wrap_content&lt;/item&gt; &l

Fii279663284的专栏 2967

Sharding-JDBC 系列专题 - 第九篇:高可用性与集群管理

高可用性是指系统在面对故障(如数据库宕机、网络中断)时,能够快速恢复并继续提供服务。Sharding-JDBC 和 Sharding-Proxy 提供了多种机制支持高可用性,同时需要结合底层数据库的高可用方案(如 MySQL 主从复制、MHA)来实现。高可用性和集群管理是 Sharding-JDBC 和 Sharding-Proxy 在生产环境中成功应用的关键。本篇详细介绍了数据库高可用方案、Sharding-JDBC 的故障切换机制、Sharding-Proxy 的集群部署,以及分布式治理功能。

资深架构师分享:深入剖析软件架构,探讨云计算、微服务、大数据等前沿技术。分享实践经验,促进技术交流,共同构建卓越系统。 1393

DataGridView实现设置默认值

【目标】系统功能主要为数据录入,大量的数据要尽量减少人工操作,故设想设置一些datagridview的列为默认值 【结果】实现 1.checkbox类型,textbox类型,comBox类型 2.可以启用系统原始默认值,也可以临时改变,将当前行设为默认值,按Enter键自动跳到下一行 【注意点】若是每一列都设置了默认值,并且当前行并没有经过编辑,那么按Enter键进入下一行时,下一行成为当前行...

weixin_30901729的博客 2212

合规批量下载美国上市公司年报数据的一些经验和总结

本文总结了使用Python脚本批量下载和处理美国上市公司SEC报告的技术经验。通过CIK代码查询SEC EDGAR系统,生成特定日期和报告类型的URL,并使用Selenium和Requests库下载报告内容。流程包括数据获取、文件下载、Excel处理和多线程优化,确保高效处理几百条数据。关键技术挑战包括SEC访问限制、动态网页内容和数据完整性,解决方案包括设置合规的User-Agent、使用Selenium模拟浏览器行为以及错误日志记录。最佳实践包括模块化设计、多线程优化和严格遵守SEC合规性。该自动化流程

jyfool的博客 1635

学习海康VisionMaster之顶点检测

2:应用场景:海康VisionMaster的顶点检测功能在工业视觉检测中具有广泛的应用场景,尤其在精密制造、电子元件检测和机械加工等领域,其通过高精度定位物体的关键点(如角点、交点或边缘顶点)来实现自动化测量与质量控制。基本参数这里就是画ROI,设定跟踪参数和之前的工具是一样的方法,这里画的方向需要注意,如下图所示,边缘的扫描方向正好对应需要查找的边缘点。一个不是很规则的物体需要检测一个凸台的顶角坐标,其实靠边缘与边缘交点是不太稳定的,如下图所示,边缘很短,很容易产生误抓边缘。1:什么是顶点检测?

yuhouxiyang的专栏 1523

android gridview 选择,Android:将GridView的选择模式重置为默认

11-28 07:26:31.780: E/AndroidRuntime(14875): FATAL EXCEPTION: main11-28 07:26:31.780: E/AndroidRuntime(14875): java.lang.StackOverflowError11-28 07:26:31.780: E/AndroidRuntime(14875): at android.wi...

weixin_36295555的博客 252

YOLO26 vs YOLOv12 vs YOLOv10:工业场景性能实测,速度/精度/部署难度全对比(附完整测试代码)

YOLO26:工业场景全能型选手,无NMS+无DFL设计让部署和推理都省心,小目标精度优势明显,CPU推理速度提升43%,适合大多数生产线场景YOLOv12:中大型目标检测专家,Area Attention在复杂背景下表现出色,适合汽车、家电等大型零部件检测YOLOv10:速度狂魔,GPU上性能领先,轻量化版本适合边缘部署,但小目标精度略逊,适合对实时性要求极高的分拣线场景。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 623

GridView简单封装收缩和展开

效果收缩 展开 思路通过Button的点击事件来改变Adapter中的数据,然后来更新视图代码 Activity import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.LayoutInflater; import android.view.View;

logan1992 3792

在 SAP 中,寄售业务(Consignment)与管道业务(Pipeline)都属于“物料先到、发票后到”的特殊采购模式,但两者的库存形态、物权转移时点、结算触发条件、系统配置完全不同

SAP中寄售业务与管道业务均属"先货后票"采购模式,但存在本质差异。寄售业务(如手机芯片)采用实物库存管理(标记"K"),物权在领用时转移,通过411K/201K移动类型触发负债;管道业务(如蒸汽)无实物库存,采用261P等移动类型直接消耗并生成应付。系统配置上,寄售需K类信息记录及GR收货,管道需P类信息记录且免GR。两者均通过MRKO汇总结算,但寄售按领用量计费,管道按提取量实时计费。核心区别在于库存形态与物权转移时点。

金牌架构师 556

【产品经理修炼之道】- 优惠券系统从入门到精通(二)

在电商平台中,优惠券的使用场景与频次都很高。那么如何做好一个优惠券系统呢?本文总结了相关流程和设计思路,希望对你有所帮助。上一篇与大家分享了架构中的前端应用、生命周期、优惠券管理中OpenAPI 、基础系统,今天继续与大家分享架构图中优惠券模板部分。

xiaoli8748的专栏 1290

android开发技术文章荟萃【2011-10-14】

android系统的媒体音量为0时,游戏的音乐能不能音量不为0 关于如何在不同分辨率下程序的运行 联系人中中的特效 如何解决选中button后变颜色的问题? 为什么点一次键,KeyListener方法会被调用两次啊? 请教大家Uri的问题 怎么修改progressba

师以长技以制夷 728

多体动力学分析软件:SIMPACK_(3).SIMPACK模型创建与编辑

在 SIMPACK 中,模型的创建与编辑是多体动力学分析的基础。通过了解模型的基本结构、创建方法、编辑技巧和高级功能,用户可以高效地构建和优化复杂的多体系统模型。无论是手动创建、通过脚本创建还是导入现有的 CAD 模型,SIMPACK 都提供了强大的工具和灵活的接口,帮助用户实现精确和高效的仿真分析。希望本节内容对您在 SIMPACK 中进行多体系统建模有所帮助。如有任何问题或需要进一步的指导,请参考 SIMPACK 的官方文档或联系技术支持。

kkchenjj的博客 1011

Android kotlin 实现仿微信朋友圈全文与收起功能(RecyclerView+BRVAH3.0.6+androidx)

RecyclerView+BRVAH3.0.6+androidx

彬sir哥的博客 2464

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

[Android]在ListView嵌套GridView中出现的点击事件处理以及gridview显示不全的问题

写这篇博文也是出于偶然看到自己很久以前写的一堆“烂码”,目的是为了实现一个ListView中能够嵌入GridView的功能,为了展示图文的一个Item,这是一个很普通的功能,但在那时候什么都不懂的我还在自己摸索摔了很多跟头,现在看看确实难堪,而且还有有很多的bug,所以就想挑出一两个解决一下,为了一些像当年我一般的小伙伴提供可行性高的解决方式,特地写了这篇整理性质的博文。(高手就不必看了)

消失的天空 5967

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

怎么用 gridview 显示从数据库中调出的部分数据

今天我们讲了MemberShip! 猛一接触,感觉是很容易学习1 但是刚用起来的时候,发现还挺麻烦的!不过在下午多用了几次的时候!发现,他还是蛮好玩的啊!用了一下午!感觉又学到了好多的东西呢!呵呵!有了不小得收获啊! 今天我自学了一个简单的小东西,下面我来讲讲他的用法啊! 因为我们今天做的一个东西是要求从数据库中调数据的,但是有一个表中的数据很多!这样 如果直接把都放在 gridview上的话

李艳平 1780

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

解决GridView内容显示不全问题

我用GridView来显示一些字符串,而字符串的长度是不固定的,然后就遇到问题了:有时字符重叠,有时显示不全,有时两种问题同时出现。见下图: 图一 GridView显示重叠、显示不全这到底是什么情况,该怎么解决呢?

lintax的专栏 1万+

android gridview图片点击全屏,Android Glide点击项目Gridview显示图像全屏

我正在使用Glide在gridview中下载和显示图像.当我点击gridview中的某个项目时,我想在另一个活动中显示此图像,以全屏显示此图像.但是使用Glide我不知道如何将图像保存在缓存中.>将图像文件名保存在数据库中并再次调用链接以使用Glide下载完整大小的图像?>或者尝试将图像放入缓存中,但我不知道该怎么做.你可以帮帮我吗 ?解决方法:尝试这段代码,它对我有用:在您的适配器上...

weixin_42513522的博客 434

android gridview中增加button,android – 在LinearLayout中使用Gridview和Button

我尝试在linearlayout的gridview下面添加按钮,代码如下.但是当我执行我的应用程序时,我只看到gridview没有按钮项目.所以它可能是基本的错误,但我看不到它.android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="horizontal"android:ba...

weixin_39801714的博客 423

Android程序:GridView的应用(仿桌面图标排列并设置点击事件)

实现效果: MainActivity :public class MainActivity extends Activity implements OnItemClickListener { private GridView gridView; private List<Map<String, Object>> dataList; private int[] icon = {

记点小笔记 2156

android gridview中增加button,Android Gridview和Button OnItemclick

这是我认为准确的buttonAdapter类:package com.example.test;import android.content.Context;import android.graphics.Color;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;im...

weixin_34268462的博客 477

android gridview绑定数据库,使用来自数据库的gridview在android中显示数据

我想在gridview中显示数据库中的数据.意味着我的表中有数据(让它成为客户详细信息),我想在gridview(或任何其他控件中显示详细信息)中显示它,就像在asp.net中一样.解: –public void FillGrid() {DatabaseHelper dbh = new DatabaseHelper(this);dbh.openDataBase();Cursor cursor;Gr...

weixin_28723109的博客 509

Android动态改变GridView的值【安卓进化二十二】

近感觉GridView的用法比较灵活,比如写一些动态改变的东西,更新显示效果比较明显,所以我写了一个demo,选中球后,点击确定显示选中的球在主页面,点击重置,则选中的球都被清空。这个效果还是比较不错的!希望给大家启迪。项目图片我没有上传,有问题的请留言,想要源码的请留言,转载请标明出处: http://blog.youkuaiyun.com/wdaming1986/article/details/6786

h183288132的专栏 1183

android gridview用法

GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用显示数据表格(一种控件)是首选,也是最简单的,下面来个实例,私有字符串[] iconName={ '通讯录', '日历', '照相机', '时钟', '游戏', '短信', '铃声,'设置', '语音', '天气', '浏览器', '视频' };可扩展标记语言版本='1.0 '编码='utf-8 '?可扩展标记语言版本='1.0 '编码='utf-8 '?

fmz2222的博客 830

【Android从零单排系列二十二】《Android视图控件——GridView》

小伙伴们,在上文中我们介绍了Android视图组件ExpandableListView,本文我们继续盘点,介绍一下视图控件的GridView。GridView是一个在Android中常用的布局控件,它可以以网格形式展示数据,类似于表格或者矩阵。GridView可以按照指定的行数和列数将数据显示在多个单元格中,使得数据呈现出规律的排列方式。GridView通过Adapter来提供数据,并且可以自定义每个单元格的布局。用户可以自定义Adapter来适配各种数据源,并为每个单元格设置不同的视图样式和内容。

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 4043
下一篇: viewpager+gridview gridview中的个数不确定
min-vo-92
博客等级 码龄11年 6粉丝 10原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值