先看效果
首页Activity
public class TraceActivity extends AppCompatActivity {
private ListView lvTrace;
private List<Trace> traceList = new ArrayList<>(10);
private TraceListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_trace);
findView();
initData();
}
private void findView() {
lvTrace = (ListView) findViewById(R.id.lvTrace);
}
private void initData() {
// 模拟一些假的数据
traceList.add(new Trace("2016年11月18日 上午12:04:01", "在湖北武汉洪山区光谷公司长江社区便民服务站进行签收扫描,快件已被 已签收 签收"));
traceList.add(new Trace("2016年11月18日 上午11:57:25", "在湖北武汉洪山区光谷公司长江社区便民服务站进行派件扫描;派送业务员:老王;联系电话:17786550311"));
traceList.add(new Trace("2016年11月17日 下午4:43:29", "在湖北武汉洪山区光谷公司进行快件扫描,将发往:湖北武汉洪山区光谷公司长江社区便民服务站"));
traceList.add(new Trace("2016年11月17日 上午9:11:21", "从湖北武汉分拨中心发出,本次转运目的地:湖北武汉洪山区光谷公司"));
traceList.add(new Trace("2016年11月17日 上午1:53:14", "在湖南长沙分拨中心进行装车扫描,即将发往:湖北武汉分拨中心"));
traceList.add(new Trace("2016年11月17日 上午1:50:18", "在分拨中心湖南长沙分拨中心进行称重扫描"));
traceList.add(new Trace("2016年11月16日 上午11:27:58", "在湖南隆回县公司进行到件扫描"));
adapter = new TraceListAdapter(this, traceList);
lvTrace.setAdapter(adapter);
}
}
然后适配器
public class TraceListAdapter extends BaseAdapter {
private Context context;
private List<Trace> traceList = new ArrayList<>(1);
private static final int TYPE_TOP = 0x0000;
private static final int TYPE_NORMAL= 0x0001;
public TraceListAdapter(Context context, List<Trace> traceList) {
this.context = context;
this.traceList = traceList;
}
@Override
public int getCount() {
return traceList.size();
}
@Override
public Trace getItem(int position) {
return traceList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
final Trace trace = getItem(position);
if (convertView != null) {
holder = (ViewHolder) convertView.getTag();
} else {
holder = new ViewHolder();
convertView = LayoutInflater.from(context).inflate(R.layout.item_trace, parent, false);
holder.tvAcceptTime = (TextView) convertView.findViewById(R.id.tvAcceptTime);
holder.tvAcceptStation = (TextView) convertView.findViewById(R.id.tvAcceptStation);
holder.tvTopLine = (TextView) convertView.findViewById(R.id.tvTopLine);
holder.tvDot = (TextView) convertView.findViewById(R.id.tvDot);
holder.tv_new = (TextView) convertView.findViewById(R.id.tv_new);
convertView.setTag(holder);
}
if (getItemViewType(position) == TYPE_TOP) {
// 第一行头的竖线不显示
holder.tvTopLine.setVisibility(View.INVISIBLE);
holder.tv_new.setVisibility(View.VISIBLE);
// 字体颜色加深
holder.tvAcceptTime.setTextColor(context.getResources().getColor(R.color.red));
holder.tvAcceptStation.setTextColor(context.getResources().getColor(R.color.red));
holder.tvDot.setBackgroundResource(R.drawable.timelline_dot_secord);
} else if (getItemViewType(position) == TYPE_NORMAL) {
holder.tvTopLine.setVisibility(View.VISIBLE);
holder.tv_new.setVisibility(View.INVISIBLE);
holder.tvAcceptTime.setTextColor(0xff999999);
holder.tvAcceptStation.setTextColor(0xff999999);
holder.tvDot.setBackgroundResource(R.drawable.timelline_dot_first);
}
holder.tvAcceptTime.setText(trace.getAcceptTime());
holder.tvAcceptStation.setText(trace.getAcceptStation());
return convertView;
}
@Override
public int getItemViewType(int id) {
if (id == 0) {
return TYPE_TOP;
}
return TYPE_NORMAL;
}
static class ViewHolder {
public TextView tvAcceptTime, tvAcceptStation;
public TextView tvTopLine, tvDot,tv_new;
}
}
实体类
public class Trace {
/** 时间 */
private String acceptTime;
/** 描述 */
private String acceptStation;
public Trace() {
}
public Trace(String acceptTime, String acceptStation) {
this.acceptTime = acceptTime;
this.acceptStation = acceptStation;
}
public String getAcceptTime() {
return acceptTime;
}
public void setAcceptTime(String acceptTime) {
this.acceptTime = acceptTime;
}
public String getAcceptStation() {
return acceptStation;
}
public void setAcceptStation(String acceptStation) {
this.acceptStation = acceptStation;
}
}
activity布局和item布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@android:color/white"
tools:context="cc.duduhuo.timelinedemo.TraceActivity">
<ListView
android:id="@+id/lvTrace"
android:layout_width="match_parent"
android:divider="@null"
android:clickable="false"
android:listSelector="@android:color/transparent"
android:dividerHeight="0dp"
android:layout_height="wrap_content" />
</LinearLayout>
<?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:gravity="center"
android:orientation="horizontal">
<RelativeLayout
android:id="@+id/rlTimeline"
android:layout_width="75dp"
android:layout_height="match_parent">
<TextView
android:id="@+id/tvTopLine"
android:layout_width="0.5dp"
android:layout_height="12dp"
android:layout_centerHorizontal="true"
android:background="#999" />
<TextView
android:id="@+id/tvDot"
android:layout_width="5dp"
android:layout_height="5dp"
android:layout_margin="2dp"
android:layout_below="@id/tvTopLine"
android:layout_centerHorizontal="true"
android:background="@drawable/timelline_dot_normal" />
<TextView
android:layout_width="0.5dp"
android:layout_height="match_parent"
android:layout_below="@id/tvDot"
android:layout_centerHorizontal="true"
android:background="#999" />
<TextView
android:id="@+id/tv_new"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="最新"
android:textColor="#ffffff"
android:background="#ff0000"
android:textSize="12sp"
android:layout_marginLeft="3dp"
android:paddingLeft="3dp"
android:paddingRight="3dp"
android:layout_toRightOf="@id/tvDot"
android:layout_below="@id/tvTopLine"
/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rlCenter"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="6dp"
android:paddingRight="10dp"
android:paddingLeft="10dp"
android:paddingTop="6dp">
<TextView
android:id="@+id/tvAcceptTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2014/06/24 20:55:28"
android:textColor="#999"
android:textSize="12sp" />
<TextView
android:id="@+id/tvAcceptStation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tvAcceptTime"
android:layout_marginTop="5dp"
android:text="在湖南隆回县公司进行到件扫描"
android:textColor="#999"
android:textSize="12sp" />
</RelativeLayout>
</LinearLayout>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# android
# 物流跟踪
# 物流跟踪效果
# android物流跟踪源码
# Android快递物流信息布局开发
# Android实现快递单号查询快递状态信息
# Android自定义view仿淘宝快递物流信息时间轴
# Android实现快递物流时间轴效果
# android实现快递跟踪进度条
# Android实现仿美团、顺丰快递数据加载效果
# Android使用http请求手机号码归属地查询代码分享
# Android编程实现号码归属地查询的方法
# kotlin实现快递与号码归属地查询案例详解
# 湖北
# 隆回县
# 上午
# 长江
# 湖南
# 湖北武汉
# 发往
# 已被
# 称重
# 首页
# 先看
# 大家多多
# 老王
# 下午
# 实体类
# paddingTop
# 武汉洪
# return
# size
# getCount
相关文章:
如何获取免费开源的自助建站系统源码?
淘宝制作网站有哪些,淘宝网官网主页?
网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
长沙做网站要多少钱,长沙国安网络怎么样?
宝塔面板如何快速创建新站点?
网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?
广德云建站网站建设方案与建站流程优化指南
为什么Go需要go mod文件_Go go mod文件作用说明
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
韩国服务器如何优化跨境访问实现高效连接?
如何选择PHP开源工具快速搭建网站?
5种Android数据存储方式汇总
建站之星代理商如何保障技术支持与售后服务?
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
家具网站制作软件,家具厂怎么跑业务?
制作表格网站有哪些,线上表格怎么弄?
利用JavaScript实现拖拽改变元素大小
购物网站制作公司有哪些,哪个购物网站比较好?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
如何通过可视化优化提升建站效果?
常州企业网站制作公司,全国继续教育网怎么登录?
PHP正则匹配日期和时间(时间戳转换)的实例代码
如何通过商城免费建站系统源码自定义网站主题?
武清网站制作公司,天津武清个人营业执照注销查询系统网站?
大连网站制作公司哪家好一点,大连买房网站哪个好?
临沂网站制作企业,临沂第三中学官方网站?
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
如何在阿里云香港服务器快速搭建网站?
制作网页的网站有哪些,电脑上怎么做网页?
高端建站如何打造兼具美学与转化的品牌官网?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
如何在IIS中配置站点IP、端口及主机头?
创业网站制作流程,创业网站可靠吗?
如何快速建站并高效导出源代码?
一键网站制作软件,义乌购一件代发流程?
建站之星如何实现网站加密操作?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
相册网站制作软件,图片上的网址怎么复制?
建站主机选哪种环境更利于SEO优化?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?
广平建站公司哪家专业可靠?如何选择?
兔展官网 在线制作,怎样制作微信请帖?
建站之星在线客服如何快速接入解答?
如何注册花生壳免费域名并搭建个人网站?
如何通过服务器快速搭建网站?完整步骤解析
制作门户网站的参考文献在哪,小说网站怎么建立?
如何通过山东自助建站平台快速注册域名?
*请认真填写需求信息,我们会在24小时内与您取得联系。