类似微信5.x朋友圈的弹出框评论功能
实现对一个主题评论并显示评论列表,首先想到的是需要使用ListView控件,
下面是layout下的xml布局文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/list_selector"android:orientation="horizontal"android:padding="5dip" ><LinearLayoutandroid:id="@+id/thumbnail"android:layout_width="120dip"android:layout_height="120dip"android:layout_alignParentLeft="true"android:layout_marginRight="5dip"android:background="@drawable/image_bg"android:padding="1dip" ><ImageViewandroid:id="@+id/group_image"android:layout_width="match_parent"android:layout_height="match_parent"android:scaleType="centerInside"android:src="@drawable/copyright" /></LinearLayout><TextViewandroid:id="@+id/group_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignTop="@+id/thumbnail"android:layout_toRightOf="@+id/thumbnail"android:text="测试朋友圈评论功能"android:textColor="#040404"android:textSize="15sp"android:textStyle="bold"android:typeface="sans" /><TextViewandroid:id="@+id/group_content"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_below="@+id/thumbnail"android:text="狗狗见到蟒,冲过去照头上就舔"android:textAppearance="?android:attr/textAppearanceLarge"android:textColor="#343434"android:textSize="12sp" /><ImageViewandroid:id="@+id/group_discuss_popup"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignRight="@+id/group_content"android:layout_below="@+id/group_content"android:background="@drawable/coment_pressed" /><TextViewandroid:id="@+id/group_createtime"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignBottom="@+id/TextView09"android:layout_toLeftOf="@+id/group_discuss_popup"android:gravity="right"android:text="2014-08-24 15:45"android:textColor="#10bcc9"android:textSize="12sp"android:textStyle="bold" /><RelativeLayoutandroid:id="@+id/rl_bottom"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true" ><Buttonandroid:id="@+id/group_discuss_submit"android:layout_width="60dp"android:layout_height="40dp"android:layout_alignParentRight="true"android:layout_centerVertical="true"android:layout_marginRight="10dp"android:background="@drawable/chat_send_button_bg"android:onClick="discussSubmit"android:text="发送"android:textSize="20sp" /><EditTextandroid:id="@+id/group_discuss"android:layout_width="fill_parent"android:layout_height="40dp"android:layout_centerVertical="true"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:layout_toLeftOf="@id/group_discuss_submit"android:hint="评论"android:singleLine="true"android:textSize="18sp" ><requestFocus /></EditText></RelativeLayout><ListViewandroid:id="@+id/group_discuss_list"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_below="@+id/group_discuss_popup"android:layout_marginTop="14dp"android:divider="#b5b5b5"android:dividerHeight="1dp"android:listSelector="@drawable/list_selector" /><TextViewandroid:id="@+id/TextView09"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignBottom="@+id/thumbnail"android:layout_marginBottom="40dp"android:layout_toRightOf="@+id/thumbnail"android:text="时间:"android:textColor="#040404"android:textSize="12sp"android:textStyle="bold"android:typeface="sans" /></RelativeLayout>
然后在Activity类的onCreate方法里,获取ListView的实例,并对每一个item增加监听器
//为防止layout界面上的EditText在进入页面时就弹出输入法,隐藏软键盘getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);listView = (ListView)findViewById(R.id.group_discuss_list);this.discussOnItemClickListener();
每一个item增加监听器的方法discussOnItemClickListener()
/*** 评论列表被单击后的事件监听*/private void discussOnItemClickListener() {//为评论的每一行添加单击事件listView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) { //获得父贴的发帖人Map<String, String> posMap = discussList.get(position); //设置pusernamepname = posMap.get("username");//取得填写评论editText的实例EditText disInputText = (EditText)findViewById(R.id.group_discuss);disInputText.setHint("回复" + pname);disInputText.requestFocus(); } }); }
接下来重点说说单击评论图标之后的弹出框,同样在Activity类的onCreate方法中,给评论图标增加onclick监听器,然后增加两个弹出项赞,评论,并且给这两个item增加监听,代码如下:
groupPopup = (ImageView) findViewById(R.id.group_discuss_popup);groupPopup.setOnClickListener(titlePopupOnclick);titlePopup = new TitlePopup(this, Utils.dip2px(this, 165), Utils.dip2px(this, 40));titlePopup.addAction(new ActionItem(this, "赞", R.drawable.circle_praise));titlePopup.addAction(new ActionItem(this, "评论",R.drawable.circle_comment));titlePopup.setItemOnClickListener(this);
监听的方法实现
/*** 单击评论按钮,弹出菜单的item click 监听*/@Overridepublic void onItemClick(ActionItem actionItem,int position) {//position,0-赞;1-评论switch(position){case 0://赞break;case 1://评论EditText disInputText = (EditText)findViewById(R.id.group_discuss);disInputText.requestFocus();break;default:break;}}
很简单,就是当单击item里的评论时,请求EditText输入框的焦点,调出输入法.
最后我们来说说添加评论功能,demo只是模拟添加了一些评论,真实环境下显然首先需要向服务端提交数据,然后从服务端请求评论列表.demo中只是在Activity类里维护一个全局List简单代替.然后使用一个BaseAdapter的实现类,实现其getView方法来显示出来.
Map<String, String> map = new HashMap<String, String>();//给map设置要显示的值map.put("distime", DateUtils.formaterDate2YMDHm(new Date(System.currentTimeMillis())));map.put("content", content);//设置父贴的发帖人信息map.put("puid", puid + "");map.put("pname", pname);//设置自己的信息map.put("uid", uid + "");map.put("username", username);discussList.add(map);ListLazyAdapter adapter = new ListLazyAdapter(this, discussList); listView.setAdapter(adapter); //设置adapter
基本上就以上三部分主要功能,可以实现一个简单的单击显示弹出框之后的评论功能.
效果图如下:
本文示例源代码下载地址:
http://download.csdn.net/detail/gaolu/7963061
类似微信5.x朋友圈的弹出框评论功能相关推荐
- 类似微信5.x朋友圈的弹出框点赞功能PopupWindow
实现对一个主题评论并显示评论列表,首先想到的是需要使用ListView控件, 下面是layout下的xml布局文件: view sourceprint? 001.<?xml version=&q ...
- 类似智联招聘选择职位的弹出框效果,可做选择城市等信息
在这里贴出主要代码,可在我的资源中下载 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...
- 微信小程序仿朋友圈,实现点赞和评论功能
本文 主要讲 大概的实现,思路.有不同想法的可以私信我. 首先的话是准备工作 布局 自己模拟的后台传送数据 commandArraylist:[{userUrl:'/assets/logo/jiatu ...
- nodeJS IOS手机和平板端在微信中下载文件时,弹出框中文件名乱码解决方案(Content-disposition:attachment; filename)
今天做项目的时候遇见一个问题.下载文件时在谷歌,Edge和火狐中文件名是正确显示的.但是在IOS端(这里我只是测试了平板和手机,苹果电脑的safari没有测试)微信弹窗中会出现%E4%BA%BF%E6 ...
- 【Chapter1】微信自带弹出框
文章目录 一.简介 二.弹出框 1.提示框 1.1 显示提示框 1.2 加载提示框 2.是否选择框 3.多项选择框 三.嵌套 四.遇到的问题 最近用了一周写了一个仿知乎的小程序,将会陆续整理,包括前端 ...
- 微信小程序页面跳转、弹出框
一.页面跳转 页面跳转是微信小程序中使用较为频繁并且很重要的功能之一,页面跳转一般是通过点击按钮或者文本区域后需要进行的操作. 页面跳转中需要注意的点很多,我在这就介绍一些我在写项目过程中所遇到的一些 ...
- jQuery+Bootstrap美化弹出框
项目中很多弹出的警告框是通过alert()弹出的浏览器警告框,样式比较丑陋且和页面使用的Bootstrap框架样式不吻合,因此需要修改弹出框样式. 采用jQuery+Bootstrap的方式这样弹出的 ...
- mootools系列:打造属于你自己的Popup(弹出框)——扩展功能篇
为弹出框(Popup)添加"关闭(×)"按钮 如弹出框结构代码所示,关闭按钮标示"×"是放置在一div中的.使其具有关闭整个弹出框的功能,只要在创建该div时, ...
- Android自定义弹窗模仿微信,Android 仿微信朋友圈点赞和评论弹出框功能
本文简单模仿微信朋友圈的点赞和评论弹出框,布局等细节请忽略,着重实现弹出框.发评论,及弹出位置的控制. 1. 微信弹出框 微信朋友圈的点赞和评论功能,有2个组成部分: 点击左下角的"更多&q ...
最新文章
- 小米今日正式进军越南市场 借助合作方铺渠道分销
- 201521123113 《Java程序设计》第5周学习总结
- 有关缅甸语学习的一些网站
- Part 3: Services
- JS获取移动端系统信息(操作系统、操作系统版本、横竖屏状态、设备类型、网络状态、生成浏览器指纹)...
- Java性能分析点滴
- phpstorm 2017.1 激活
- Linux内存管理:内存描述之内存页面page
- kubernetes Istio是什么
- java学习--基础知识阶段性总结--多线程
- 获取计算机登录用户名和密码,查看电脑的登录用户名_查看电脑用户名和密码...
- egret 显示帧动画
- Javascript小程序 向浏览者问好(转)
- MT6577/MT6589处理器参数对比分析
- mac怎么搭建网站服务器,mac搭建本地服务器(示例代码)
- go学习 --- go协程
- IE-LAB网络实验室:华为AAA认证详解
- 今日头条信息流 - 开户技巧
- 指法练习软件ECAI使用指南
- 基于pytorch+python实现一个中文到英文的神经网络的翻译模型
热门文章
- 天耀18期 – 03.Java基本语法【作业】.
- c语言链表删除重复点,【图片】想问一道链表题,如何删除重复元素【c语言吧】_百度贴吧...
- Apache Pulsar 首场亚洲峰会议题出炉:聚焦实战案例,火热报名中
- SPI Flash芯片W25Q32英文版数据手册解读(一)---------引脚功能,工作模式
- MySQL如何统计表格的总行数
- 动漫制作都用html5吗,怎么制作h5动画?
- 前端开发之字体大小px,em,rem,pt
- 2021年Android工作或许更难找,面试资料分享
- MogaFX—ServiceNow的Bill McDermott正在关注货币汇率
- 买房贷款,“房贷20年”和“房贷30年”,哪个更划算?为什么?