Android网易评论盖楼效果实现
下面是一个主要的方法:
/** * 递归加载楼层的方法 * * @param context上下文的对像 * @param 递归的控制参数 * ,同时也是取用户评论信息和背景色的下标,引参数的大小必须是从集合中获得的用户名数组或从集合中获得的评论内容数据的大小减一 * @param pad * 楼层的间距 * @param strs * 用户名的字符串数组 * @param strs1 * 用户相应评论内容的字符串数组 * @param color * 背景色的数组,实际应用的时候这个参数可以不用,用一张背景图片代替就行 * @return 返回一个楼层的LinearLayout布局对象 */ private LinearLayout add(Context context, int i, int pad, String[] strs, String[] strs1, int[] color) { // 加载一个布局 LinearLayout layout1 = (LinearLayout) LayoutInflater.from(context) .inflate(R.layout.add, null); // 获得显示用户名、楼层数、用户评论内容的TextView TextView name = (TextView) layout1.findViewById(R.id.add_textView01); TextView page = (TextView) layout1.findViewById(R.id.add_textView02); TextView comment = (TextView) layout1.findViewById(R.id.add_textView03); // 设置显示用户名、楼层数、用户评论内容TextView的内容 name.setText(strs[i]); page.setText((i + 1) + ""); comment.setText(strs1[i]); // 动态生成一个LinearLayout来装载获得的布局 LinearLayout layout = new LinearLayout(context); layout.setOrientation(LinearLayout.VERTICAL); layout.setBackgroundColor(color[i]); layout.setPadding(pad, pad, pad, pad); // 当i的值为零时,递归结束 if (i != 0) { layout.addView(add(context, --i, pad, strs, strs1, color)); } layout.addView(layout1); return layout; }
下面是add.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/add_textView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_marginLeft="10dp" android:text="sd" /> <TextView android:id="@+id/add_textView02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_marginRight="10dp" android:text="1" /> </RelativeLayout> <TextView android:id="@+id/add_textView03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="sfsd" /> </LinearLayout>
下面附上Adapter的代码,Activity的布局和数据的添加自已想:
public class CommentAdapter extends BaseAdapter { private Context context; private List<Map<String, Object>> mAryList; private int[] color = new int[] { Color.CYAN, Color.RED, Color.BLUE, Color.BLACK, Color.DKGRAY, Color.GREEN, Color.LTGRAY, Color.MAGENTA, Color.WHITE, Color.YELLOW }; private int pad = 2; public CommentAdapter(Context context, List<Map<String, Object>> strings) { this.context = context; this.mAryList = strings; } @Override public int getCount() { return mAryList != null ? mAryList.size() : 0; } @Override public Object getItem(int position) { return mAryList != null ? mAryList.get(position) : null; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = LayoutInflater.from(context).inflate( R.layout.main_item, null); holder.layout = (LinearLayout) convertView .findViewById(R.id.main_linearLayout); holder.lastComment = (TextView) convertView .findViewById(R.id.main_textView); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); // 此处清除子View holder.layout.removeAllViews(); } holder.lastComment.setText(mAryList.get(position).get("lastComment") .toString()); String[] strs = (String[]) mAryList.get(position).get("name"); String[] strs1 = (String[]) mAryList.get(position).get("comment"); holder.layout.addView(add(context, (strs.length - 1), pad, strs, strs1, color)); convertView.setBackgroundColor(Color.TRANSPARENT); return convertView; } /** * 递归加载楼层的方法 * * @param context上下文的对像 * @param 递归的控制参数 * ,同时也是取用户评论信息和背景色的下标,引参数的大小必须是从集合中获得的用户名数组或从集合中获得的评论内容数据的大小减一 * @param pad * 楼层的间距 * @param strs * 用户名的字符串数组 * @param strs1 * 用户相应评论内容的字符串数组 * @param color * 背景色的数组,实际应用的时候这个参数可以不用,用一张背景图片代替就行 * @return 返回一个楼层的LinearLayout布局对象 */ private LinearLayout add(Context context, int i, int pad, String[] strs, String[] strs1, int[] color) { LinearLayout layout1 = (LinearLayout) LayoutInflater.from(context) .inflate(R.layout.add, null); TextView name = (TextView) layout1.findViewById(R.id.add_textView01); TextView page = (TextView) layout1.findViewById(R.id.add_textView02); TextView comment = (TextView) layout1.findViewById(R.id.add_textView03); name.setText(strs[i]); page.setText((i + 1) + ""); comment.setText(strs1[i]); LinearLayout layout = new LinearLayout(context); layout.setOrientation(LinearLayout.VERTICAL); layout.setBackgroundColor(color[i]); layout.setPadding(pad, pad, pad, pad); if (i != 0) { layout.addView(add(context, --i, pad, strs, strs1, color)); } layout.addView(layout1); return layout; } private class ViewHolder { LinearLayout layout; TextView lastComment; } }
Android网易评论盖楼效果实现相关推荐
- android 评论盖楼,Android 使用ListView实现网易评论盖楼效果
效果如下:( 点击下载演示) 本人已经开源到了TaoCode,可以使用SVN免费更新下来:http://code.taobao.org/svn/nestlistview/trunk 实现原理:顶部利用 ...
- php实现和MySQL实现评论_仿网易评论盖楼PHP+Mysql实现
这篇文章主要介绍了关于仿网易评论盖楼PHP+Mysql实现,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 大家可能都看过网易评论的那种盖楼式的引用,这边文章就用php和mysql来实现 ...
- 仿网易新闻评论“盖楼”效果实现
前言 各位应该对黄易新闻比较熟悉,其中评论区一般都会出现一些盖楼的神评论,今天的主题就是仿照做一个有盖楼效果的评论列表. 首先上图给大家看下效果: 思路 数据结构设计 首先分析看下评论的结构,仔细观摩 ...
- 网易评论盖楼php,DedeCMS评论引用美化:仿腾讯/网易盖楼效果
关于DedeCMS的使用教程,烈火介绍了很多,相信各位站长都有所了解,今天我们来看一个美化评论样式,实现仿腾讯.网易.迅雷等的盖楼效果,这是笔者前段时间就美化了的,当初烈火只是仿了腾讯的样式,在盖楼时 ...
- 【凯子哥带你做高仿】“煎蛋”Android版的高仿及优化(二)——大图显示模式、评论“盖楼”效果实现详解
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 在前一篇文章中,我们学习了如何进行逆向工程和TcpDump进行抓包,获取我们的数据接口,那么有了数据之后,我 ...
- Android网易新闻评论盖楼效果的实现
转子:http://xie2010.blog.163.com/blog/static/211317365201411041930806/
- 客户端评论盖楼(内涵段子评论盖楼)实现思路
前言 出来上班也2~3年了,总觉得作为一个程序员,我们应该有一个自己的产品,无论是从提升技术角度出发,还是作为对自己行业认知的检验.所以从2016年8月中旬,我开始动工自己的第一个APP开发. 也由于 ...
- 评论盖楼 Vue使用组件递归,组件递归传值,实现评论盖楼功能
Vue使用组件递归,组件递归传值,实现评论盖楼功能 这里面有使用 vant框架,moment.js ,axios等其他框架,只是自己练习,模仿业务 实现效果: 实现评论的显示 服务器给出的数据为 {d ...
- mysql实现评论盖楼的sql_PHP 仿网易云的评论盖楼
一.简要 第一次做这种设计,当然有许多不足,希望多多指出. 评论盖楼,就是每条评论一个楼层,而楼层里面可以嵌套很多引用的评论,直接上图 A:牛什么牛(见图 Top4) B回复A:好牛啊.(所以这里就嵌 ...
最新文章
- html标记汇总,HTML标记语法汇总.doc
- 教你怎么在Dreamweaver中创建数据库
- 轻量级分布式文件系统FastDFS使用安装说明手册(新手入门级)
- Jmeter+ant+Jenkins构建接口自动化测试时构建失败 提示:Fatal Error! 字符引用 #原因...
- 1.信号处理之:kill(),alarm(),pause()函数
- Linux的换网变化IP进行固定IP
- Dapr牵手.NET学习笔记:状态管理进阶(一)
- rk3399性能_AIIA AI公布首轮评估结果:瑞芯微RK3399数据抢眼
- 深度linux 网络配置文件,solver及其配置 - Caffe 深度学习入门教程_Linux教程_Linux公社-Linux系统门户网站...
- 需求获取安排计划书_若想成功融资,商业计划书必须秀色可餐:餐饮业商业计划书模板...
- 大学计算机vfp最新考试题库,大学计算机vfp考试选择题题库.doc
- 提升SQLite数据插入效率低、速度慢的方法
- ALC5640-VB-CGT简介
- 外星人安装MSDN原版系统一键还原Alienware OEM logo
- B组group1:B - Buffoon
- 局域网服务器文件夹隐藏,共享文件设置隐藏 隐藏共享文件夹的方法
- SATA系列专题之六:浅析NCQ原生指令序列
- x79主板服务器内存有什么型号,x79主板支持什么内存
- Associative Embedding: End-to-End Learning forJoint Detection and Grouping论文笔记
- JavaScript判断当前浏览器是否为IE浏览器
热门文章
- 【ML从入门到入土系列01】概述
- 数据类型在内存中的存储原理
- 剖析SPDK读写NVMe盘过程--从hello_world开始
- 【题解】A1004 求三个数的平均数
- CVPR2020|比CNN更强有力,港中文贾佳亚团队提出两类新型自注意力网络
- 论文阅读:(NFM)Neural Factorization Machines for Sparse Predictive Analytics
- rabbitmq集群安装与配置(故障恢复)
- java 读excel 流_Java中使用POI读取大的Excel文件或者输入流时发生out of memory异常参考解决方案...
- Python爬虫:用最普通的方法爬取ts文件并合成为mp4格式
- springboot2学习笔记:mvnw相关文件生成