listView 多个item布局
package kds.szkingdom.wo.android.adapter; import java.util.List; import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView; import com.szkingdom.common.android.base.Res;
import com.szkingdom.commons.lang.StringUtils;
import com.szkingdom.modeWO.android.phone.R;
import com.trevorpage.tpsvg.SVGView;
import com.trevorpage.tpsvg.SvgRes1; public class IACTChatAdapter extends BaseAdapter
{
private Context context;
private List<IACTMsgBean> msgList; public IACTChatAdapter(Context c, List<IACTMsgBean> msgList)
{
this.context = c;
this.msgList = msgList;
} @Override
public int getCount()
{
return msgList.size();
} @Override
public Object getItem(int position)
{
return msgList.get(position);
} @Override
public long getItemId(int position)
{
return position;
} @Override
public View getView(int pos, View view, ViewGroup parent)
{
Holder holder = null;
if (view == null)
{
holder = new Holder();
LayoutInflater inflater = LayoutInflater.from(context);
view = (View) inflater.inflate(R.layout.iact_chat_msg_item, null);
holder.rl_item = (RelativeLayout) view
.findViewById(R.id.iact_chat_msg_item);
holder.rl_left = (RelativeLayout) view
.findViewById(R.id.rl_iact_chat_msg_left);
holder.rl_right = (RelativeLayout) view
.findViewById(R.id.rl_iact_chat_msg_right);
holder.tv_left = (TextView) view.findViewById(R.id.tv_user_left);
holder.tv_right = (TextView) view.findViewById(R.id.tv_user_right);
holder.iv_left = (Button) view
.findViewById(R.id.iv_iact_user_left);
holder.iv_right = (SVGView) view
.findViewById(R.id.iv_iact_user_right);
holder.tv_time_left = (TextView) view
.findViewById(R.id.tv_iact_chat_msg_time_left);
holder.tv_time_right = (TextView) view
.findViewById(R.id.tv_iact_chat_msg_time_right);
holder.ll_left = (LinearLayout) view.findViewById(R.id.ll_left);
holder.ll_right = (LinearLayout) view.findViewById(R.id.ll_right);
view.setTag(holder);
} else
{
holder = (Holder) view.getTag();
holder.rl_right.setVisibility(View.GONE);
holder.rl_left.setVisibility(View.GONE);
}
IACTMsgBean bean = msgList.get(pos);
if(!StringUtils.isEmpty(bean.getFeedbackContent())){
//客户端消息
holder.rl_right.setVisibility(View.VISIBLE);
holder.iv_right.setSVGRenderer(
SvgRes1.getSVGParserRenderer(context,
R.drawable.kds_wo_svg_sender), null);
holder.tv_right.setText(bean.getFeedbackContent());
holder.tv_time_right.setText(bean.getFeedbackTime());
holder.ll_right.setBackgroundDrawable(Res.getDrawable(R.drawable.kds_wo_png_backgroud_blue));
}
if(!StringUtils.isEmpty(bean.getReplyContent())){
//服务器端消息
holder.rl_left.setVisibility(View.VISIBLE);
holder.iv_left.setBackgroundResource(R.drawable.kds_gphone_original); holder.tv_left.setText(bean.getReplyContent());
holder.tv_time_left.setText(bean.getReplyTime());
holder.ll_left.setBackgroundDrawable(
Res.getDrawable(R.drawable.kds_wo_png_background_white));
}
return view;
} private class Holder
{
RelativeLayout rl_item;
RelativeLayout rl_left;
RelativeLayout rl_right;
TextView tv_time_left;
TextView tv_time_right;
TextView tv_left;
TextView tv_right;
Button iv_left;
SVGView iv_right;
LinearLayout ll_left;
LinearLayout ll_right;
} }
listView 多个item布局的更多相关文章
- ListView具有多种item布局——实现微信对话列
这篇文章的效果也是大家常见的,各种通讯应用的对话列表都是这种方式,像微信.whatsapp.易信.米聊等.我们这篇文章也权当为回忆,形成简单的笔记.这篇文章参考了2009年Google IO中的< ...
- ListView实现多种item布局的方法和注意事项
这篇文章的效果也是大家常见的,各种通讯应用的对话列表都是这种方式,像微信.whatsapp.易信.米聊等.我们这篇文章也权当为回忆,形成简单的笔记.这篇文章参考了2009年Google IO中的< ...
- 【转】Android ListView加载不同的item布局
原创教程,转载请保留出处:http://www.eoeandroid.com/thread-72369-1-1.html 最近有需求需要在listView中载入不同的listItem布局,开始 ...
- ListView点击Item展开隐藏项(单项展开、多项展开、复杂布局时的展开处理)
手机屏幕毕竟有限,当我们要显示较多数据时便不得不舍去一些次要信息.将主要信息优先显示,也使显示效果更加简洁美观.遇到类似的需求,我们使用最多的就是 ListView ,而假设每次点击一个 Item 都 ...
- RN中listView的每个item等高
今天写ListView的每个Item的布局的时候发现,当文字太长时被截掉了不能完全显示,检查了很久发现没有设置固定高度都是可伸缩的为什么没有伸缩呢.看了很久才发现每个item是等高的,于是仔细检查才看 ...
- Android ListView实现不同item的方法和原理分析
ListView实现不同item的方法和原理分析 一问题抛出Listview是android里面的重要组件,用来显示一个竖向列表,这个没有什么问题:但是有个时候列表里面的item不是一样的,如下图,列 ...
- 它们的定义ListView,实现Item除去滑动和滑出菜单效果
这个程序是基于变化从网上开源项目,详情货源忘记.懒得去搜索,.假设有不合适的地方.请与我联系作者.我会及时回复和处理! 序中主要包括两个ListView,一个是实现側滑删除.一个是側滑出菜单,代码中的 ...
- Android处理ListView中的Item中的Button按钮不能点击的问题
问题描述:ListView列表中的Button按钮按钮不能点击 解决办法:在ListView中的Item项的布局文件中加上:android:descendantFocusability="b ...
- Android动态加载ListView中的Item
我这周上网看到动态增加listview的每一项item的布局,今天抽空自己写了一个,方便自己日后使用,这个效果还是很不错的,用到了Adapter的notifyDataSetChanged()方法,当点 ...
随机推荐
- Springboot使用AOP实现统一处理Web请求日志
1.要使我们自定义的记录日志能够打印出来,我们需要先排除springboot默认的记录日志,添加如下的设置 2.新建 resources/log4j.properties 我的设置为: # LOG4J ...
- Class工具类
Class工具类,提供操作class类的方法,源码如下: import java.io.File; import java.io.FileFilter; import java.io.IOExcept ...
- .net 对称加密
后台 public class CryptoHelper { // 对称加密算法提供器 private ICryptoTransform encryptor ...
- javascript中对象属性的介绍
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Android CollapsingToolbarLayout Toolbar的title覆盖问题
CollapsingToolbarLayout 里: app:titleEnabled="true" app:title="Hello" Toolbar 里: ...
- JQuery学习笔记系列(二)----
jQuery是一个兼容多浏览器的javascript库,核心理念是write less,do more(写得更少,做得更多).其中也提供了很多函数来更加简洁的实现复杂的功能. 事件切换函数toggle ...
- 三维建模:方法之CSG与B-Rep比较
源自于百度百科:实体造型--- 三维模型特征表示方法: 计算机中表示三维形体的模型,按照几何特点进行分类,大体上可以分为三种:线框模型.表面模型和实体模型.如果按照表示物体的方法进行分类,实体模型基本 ...
- 编译VTK的MFC库
原文链接:http://blog.csdn.net/left_la/article/details/7069708 本人做了少量修改! Win7 + VS2010 + CMake2.8.6 + VTK ...
- 函数GROUP_CONCAT
这不得不说是mysql中一个特别好用的函数,之前生写这种确实好麻烦..感谢mysql有了这么好的函数..嘿嘿 举个例子吧. s_student 表 stuinfo表 sql如下: ok,简单粗暴,就这 ...
- map 解析
Observable.of(1, 2, 3) .map { $0 * $0 } .subscribe(onNext: { print($0) }) .disposed(by: disposeBag) ...