当前位置:网站首页>Timeline and logistics information. You don't need stepview at all

Timeline and logistics information. You don't need stepview at all

2022-06-10 13:04:00 yechaoa

design sketch :

The code is simple , It's not too difficult

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", " Signed for   Looking forward to serving you again ");
        map.put("time", "2017-08-14 11:21:58");
        list.add(map);

        map = new HashMap<>();
        map.put("title", " In the process of dispatch   Courier ** 123456789");
        map.put("time", "2017-08-14 11:21:58");
        list.add(map);

        map = new HashMap<>();
        map.put("title", " The express has arrived   Shanghai Pudong distribution center ");
        map.put("time", "2017-08-14 11:21:58");
        list.add(map);

        map = new HashMap<>();
        map.put("title", " The express has arrived   Shanghai Hongqiao distribution center ");
        map.put("time", "2017-08-14 11:21:58");
        list.add(map);

        map = new HashMap<>();
        map.put("title", " Suzhou Wujiang key customer business department   Already issued ");
        map.put("time", "2017-08-14 11:21:58");
        list.add(map);

        map = new HashMap<>();
        map.put("title", " The package is waiting for collection ");
        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();
            }
            // according to key obtain 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);
            // First remove the vertical line above , And set the color 
            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);
            }
            // The last one removes the underline at the bottom 
            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;
        }
    }
}

complete Demo:https://github.com/yechaoa/TimeLineDemo

原网站

版权声明
本文为[yechaoa]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/161/202206101133345401.html