时间轴、物流信息。你根本不需要StepView


效果图:



代码很简单,也没什么难度

MainActivity.java

package com.yechaoa.timelinedemo;

import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity {

    private ListView mListView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initView();
        initData();
    }

    private void initView() {
        mListView = (ListView) findViewById(R.id.listView);
    }

    private void initData() {
        List<Map<String, Object>> list = new ArrayList<>();

        Map<String, Object> map = new HashMap<>();
        map.put("title", "已签收 期待再次为您服务");
        map.put("time", "2017-08-14 11:21:58");
        list.add(map);

        map = new HashMap<>();
        map.put("title", "派件中 快递员** 123456789");
        map.put("time", "2017-08-14 11:21:58");
        list.add(map);

        map = new HashMap<>();
        map.put("title", "快件已到达 上海浦东集散中心");
        map.put("time", "2017-08-14 11:21:58");
        list.add(map);

        map = new HashMap<>();
        map.put("title", "快件已到达 上海虹桥集散中心");
        map.put("time", "2017-08-14 11:21:58");
        list.add(map);

        map = new HashMap<>();
        map.put("title", "苏州吴江大客户营业部 已发出");
        map.put("time", "2017-08-14 11:21:58");
        list.add(map);

        map = new HashMap<>();
        map.put("title", "包裹正在等待揽收");
        map.put("time", "2017-08-14 11:21:58");
        list.add(map);

        mListView.setAdapter(new TimeLineAdapter(this, list));
    }

    class TimeLineAdapter extends BaseAdapter {

        private Context context;
        private List<Map<String, Object>> list;
        private LayoutInflater inflater;

        public TimeLineAdapter(Context context, List<Map<String, Object>> list) {
            super();
            this.context = context;
            this.list = list;
        }

        @Override
        public int getCount() {
            return list.size();
        }

        @Override
        public Object getItem(int position) {
            return position;
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            TimeLineHolder viewHolder;
            if (convertView == null) {
                inflater = LayoutInflater.from(parent.getContext());
                convertView = inflater.inflate(R.layout.item_time_line, null);
                viewHolder = new TimeLineHolder();
                viewHolder.title = (TextView) convertView.findViewById(R.id.title);
                viewHolder.time = (TextView) convertView.findViewById(R.id.time);
                viewHolder.view0 = convertView.findViewById(R.id.view0);
                viewHolder.view4 = convertView.findViewById(R.id.view4);
                viewHolder.image = (ImageView) convertView.findViewById(R.id.image);
                convertView.setTag(viewHolder);
            } else {
                viewHolder = (TimeLineHolder) convertView.getTag();
            }
            //根据key获取value
            String titleStr = list.get(position).get("title").toString();
            viewHolder.title.setText(titleStr);
            String timeStr = list.get(position).get("time").toString();
            viewHolder.time.setText(timeStr);
            //第一个去掉上面的竖线,并设置颜色
            if (position == 0) {
                viewHolder.title.setTextColor(ContextCompat.getColor(context, R.color.colorPrimary));
                viewHolder.time.setTextColor(ContextCompat.getColor(context, R.color.colorPrimary));
                viewHolder.image.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.shape_oval_primary));
                viewHolder.view0.setVisibility(View.INVISIBLE);
            } else {
                viewHolder.title.setTextColor(Color.GRAY);
                viewHolder.time.setTextColor(Color.GRAY);
            }
            //最后一个去掉底部的下划线
            if (position == list.size() - 1) {
                viewHolder.view4.setVisibility(View.INVISIBLE);
            } else {
                viewHolder.view4.setVisibility(View.VISIBLE);
            }
            return convertView;
        }

        class TimeLineHolder {
            private TextView title, time;
            private View view0, view4;
            private ImageView image;
        }
    }
}


完整Demo:https://github.com/yechaoa/TimeLineDemo



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yechaoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值