位置: 编程技术 - 正文

如何开发一个新闻订阅APP之Android篇(二、从“逛”页面谈谈多种格式listview的实现细节)(如何开发一个新的向量库)

编辑:rootadmin

推荐整理分享如何开发一个新闻订阅APP之Android篇(二、从“逛”页面谈谈多种格式listview的实现细节)(如何开发一个新的向量库),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:如何开发一个新药,如何开发一个新险种,如何开发一个新品牌产品,如何开发一个新项目,如何开发一个新的APP,如何开发一个新项目,如何开发一个新客户,如何开发一个新的市场,内容如对您有帮助,希望把文章链接给更多的朋友!

上一篇文章如何开发一个新闻订阅APP之Android篇(一、实现仿微信主界面效果) 介绍了布板主界面的实现,接下来,我想和大家分享一下ListView的一些使用心得。 listview是客户端最最常见的组件之一,它以列表的形式展示一组数据。android对listview做了很好的优化,即使你的list被用来展现成千上万的数据,对于listview来说,只会生成少量的列表项,具体的数量会视你的屏幕可见区域长度和每一个列表项的高度而定。至于实现原理,这里推荐一篇ListView中convertView和ViewHolder的工作原理

一个简单的列表页面java代码实现需要如下: 一个listview 一个adapter 一组待展示数据

如何开发一个新闻订阅APP之Android篇(二、从“逛”页面谈谈多种格式listview的实现细节)(如何开发一个新的向量库)

但是界面的设计是丰富多样的,通常一个listview可能会需要显示多种不同的格式。这里推荐直接继承BaseAdapter,因为稍微复杂一点的listview,继承BaseAdapter可以支持你自定义列表加载,显示等等细节实现; 特别注意的一点是,其实无论需要展示多少种类型的布局,你都可以在getView中,针对每条数据,生成不同格式的布局;那为什么android还要提供getViewTypeCount和getItemViewType这两个方法来让你在实现多种布局时必须重载呢? 最主要的原因是:配合getView参数中的convertView,重复利用已有的view布局,展示不同的数据。当你实现了上述两个方法后,listview会调用这些函数,确定你需要的不同类型的布局个数,当listview需要显示某一种类型的布局时,它会根据getItemViewType来判断是否已经缓存了相同类型的布局,如果是,则传入convertView,否则,生成一个新的view; 那么问题又来了:为什么要用convertView?唯一的因素是:更快,如果为每一条数据生成一个新的View会耗费很长的时间,用户在上下滑动会造成卡顿现象, 此外,ViewHolder的模式也是为了在切换列表项时,当已经存在一个缓存的view情况下(即convertView不为空),避免使用findViewById带来的性能开销,优化listView的流畅性; 下面是部分代码,newsList是数据列表;

重写getView,个人习惯是根据当前列表项的布局类型,调用不同的方法,这样代码结构看上去比较清晰; 其实究竟要区分多少种不同的类型,取决于你的每一种类型是否是可以扩展布局类型。举例来说:微信朋友圈每一个状态可以显示的图片最多9张,显示类型为3*3。最少则只有文字,需要多少种类型的布局呢? 答案是只需要一种类型的布局。如何实现? 首先,定义好三层linearlayout和9个imageView,每一层包含三个imageView,假设当前列表项只有文字,则将三个linearLayout的visibility都设置为gone;只有一张图片,则将第一层linearlayout和第一个imageView的visibility设置为visible;即显示N张图片,即将相应前N个imageView设置为可见(至于每一层中后续的imageView的visibility是设置为gone还是invisible,取决于你希望显示的图片类型是铺满屏幕,还是固定大小),每超过一行显示个数,则相应设置新的一行linearlayout为visible即可。

而涉及到完全不同的两种布局,比如微信的分享和通过手机发的个人状态两种类型,则需要定义两种类型的布局,这是因为在显示一个刚刚进入屏幕的列表项时,可以直接配合ViewHolder,使用之前已经缓存过的convertView; 下面是效果图,界面滑动效果还是非常流畅的,并且支持了比较丰富的布局类型: 现在稍微好一点的android机型,在listView中加载再多的文字基本不存在任何问题,但是显示图片仍然需要注意内存开销,特别是像上述界面中显示大量图片的场景。下一篇,我将介绍关于图片加载的一些实现细节。 有兴趣的同学也可以去豌豆荚搜索“布板”或扫描二维码下载android的demo版试用看看,欢迎小伙伴们和我一起讨论交流。

Android使用局和数据实现天气项目-android学习之旅(十二) 1.首先注册聚合数据账号,下载相应的sdk2.导入jar包和so文件配置Application,初始化sdkapplication//自己新建的application类android:name="com.juhe.weather.WeatherApplicatio

WebView 布局设置fill_parent carch android4.4.2android5.0在fragment加载webview布局设置为android:layout_width=fill_parentandroid:layout_height=wrap_contentwebview加载H5,设置WebSettingswebSettings=webView.getSettings();webS

Android中如何将原生程序向stdout和stderr的输出重定向到logcat 在Android系统中,凡是由Zygote孵化出来的进程,其标准输出(stdout)、标准错误(stderr)都被重定向到了/dev/null这个设备中。因此,任何输出到stdout和stde

标签: 如何开发一个新的向量库

本文链接地址:https://www.jiuchutong.com/biancheng/385250.html 转载请保留说明!

上一篇:使用SQLite本地数据库

下一篇:Android使用局和数据实现天气项目-android学习之旅(十二)(android中常用的布局是)

  • 目的税包括
  • 企业如何代扣代缴劳务报酬所得税
  • 转让费和押金的区别
  • 电子发票会自动发送到邮箱吗
  • 外贸出口免税政策
  • 发票专用章换了需要登记吗
  • 银行承兑贴现的会计分录怎么做
  • 收到厂家给医药的短信
  • 汇算清缴调增的金额,如何做会计分录
  • 借款利息是否可以转为本金
  • 销项负数发票原发票还有用吗?
  • 进料加工委托 加工费发票怎么开
  • 企业合并相关舞弊风险有哪些
  • 企业支付的工伤赔偿需要什么材料
  • 中国银行结算包括哪些内容?怎么做会计分录?
  • 财产租赁所得个人所得税计算方法2020
  • 专用发票丢失如何报销
  • 留抵进项税额可以挂在转出未交增值税吗
  • 调整暂估有差价怎么办
  • 当月认证失控发票怎么做账处理?
  • 业务招待费在税法上的规定
  • 收到安装费发票怎么做分录
  • 税务变更后之前的进项
  • 工商局打印公司章程介绍信
  • 个人借公司款账务处理
  • 暂估金额与发票金额的区别
  • 路由器管家怎么登录
  • 专项储备属于什么科目代码
  • 固定资产不入账的后果
  • 增值税红字发票开具
  • office com组件修复
  • ffmpeg安装教程linux
  • .inc是什么文件
  • 员工自己垫付的费用怎么走账
  • PHP - EasyUI DataGrid 资料取的方式介绍
  • 如何通过手机号码查对方在哪里
  • 延期支付土地款利息会计处理
  • 应收账款的定义和特点
  • vue.js in action
  • labview oop
  • mediapipe objectron
  • win11右键没了
  • 应付票据核算的内容
  • 车间打杂工
  • 契税计入会计利润总额吗
  • BOM学习
  • 绩效工资扣款违法么?
  • 购买材料收到普票怎么做会计分录
  • 小微企业享受免税吗
  • 什么是税后利息支出
  • 月底资产负债表怎么填
  • 完税凭证抵扣进项税额分录
  • 增值税处罚条例
  • 外贸年底抵扣不抵税
  • 海关被税没有发票
  • 制造费用主要核算项目
  • 事业单位取暖费2023
  • 企业的银行转账多久到账
  • 内控制度包括哪几方面
  • 小规模纳税人公司注册条件
  • 企业防止股权收益的措施
  • 主营业务成本如何做分录
  • 领用自产产品用于固定资产
  • 开发票的时候密码超出密码区发票还能用吗?
  • 新成立公司季初资产总额是填1
  • 累计摊销可以做什么分录
  • 没有销售收入可以有销售费用吗
  • 如何审核原始凭证的正确性
  • 关于mysql中的字符型数据下面说法正确的是
  • win8打开运行窗口
  • CoverDesigner.exe是一个安全进程吗 CoverDesigner进程查询
  • 怎么学linux
  • 使用jquery
  • base如何使用
  • jquery里的ready是什么意思
  • 山西税务官网登录
  • 出口报价必须含增值税吗
  • 中国税务网官网1732171695993732.2418.61431871
  • 天津静海离天津市区多远
  • 提供劳务者受害责任纠纷赔偿案例
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设