本文实例为大家分享了Android实现快递物流时间轴效果展示的具体代码,供大家参考,具体内容如下
首先,这篇参考了别人的代码。根据自己的项目需求简单改造了一下,效果图如下
xml:代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<? 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:orientation = "vertical" >
< ListView
android:id = "@+id/lv_list"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:cacheColorHint = "@null"
android:divider = "@null" >
</ ListView >
</ LinearLayout >
|
接下来是Activity,准备数据就好了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
public class TimeLineTextActivity extends Activity{
private ListView listView;
private TimeLineAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super .onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=(ListView) findViewById(R.id.lv_list);
listView.setDividerHeight( 0 );
adapter = new TimeLineAdapter( this , initData());
listView.setAdapter(adapter);
}
private List<Map<String, Object>> initData() {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
map.put( "title" , "提交已完成......" );
map.put( "time" , "2015-10-22 14:00:00" );
list.add(map);
map = new HashMap<String, Object>();
map.put( "title" , "正在审核中......" );
map.put( "time" , "2015-10-22 15:00:00" );
list.add(map);
map = new HashMap<String, Object>();
map.put( "title" , "客服将会给您打电话......" );
map.put( "time" , "2015-10-22 16:00:00" );
list.add(map);
map = new HashMap<String, Object>();
map.put( "title" , "订单已完成" );
map.put( "time" , "2015-10-22 17:00:00" );
list.add(map);
return list;
}
}
|
Adapter:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
public 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() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem( int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId( int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView( int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
TimeLineHolder viewHolder = null ;
if (convertView == null ) {
inflater = LayoutInflater.from(parent.getContext());
convertView = inflater.inflate(R.layout.itemtimeline2, null );
viewHolder = new TimeLineHolder();
viewHolder.title = (TextView) convertView.findViewById(R.id.title);
viewHolder.time = (TextView) convertView.findViewById(R.id.time);
convertView.setTag(viewHolder);
} else {
viewHolder = (TimeLineHolder) convertView.getTag();
}
String titleStr = list.get(position).get( "title" ).toString();
viewHolder.title.setText(titleStr);
return convertView;
}
static class TimeLineHolder{
private TextView title,time;
}
}
|
每一个item的布局:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
<? 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:orientation = "vertical" >
< View
android:id = "@+id/view_0"
android:layout_width = "1dp"
android:layout_height = "25dp"
android:layout_below = "@+id/layout_1"
android:layout_marginLeft = "40dp"
android:background = "#A6A6A6" />
< ImageView
android:id = "@+id/image"
android:layout_width = "15dp"
android:layout_height = "15dp"
android:layout_below = "@+id/view_0"
android:layout_marginLeft = "33dp"
android:src = "@drawable/timeline_green" />
< View
android:id = "@+id/view_2"
android:layout_width = "1dp"
android:layout_height = "50dp"
android:layout_below = "@+id/image"
android:layout_marginLeft = "40dp"
android:background = "#A6A6A6" />
< View
android:id = "@+id/view_4"
android:layout_width = "match_parent"
android:layout_height = "1dp"
android:layout_alignBottom = "@+id/view_2"
android:layout_marginLeft = "55dp"
android:layout_marginRight = "15dp"
android:background = "#A6A6A6" />
< RelativeLayout
android:id = "@+id/relative"
android:layout_width = "fill_parent"
android:layout_height = "match_parent"
android:layout_margin = "10dp"
android:layout_toRightOf = "@+id/view_0"
android:layout_alignBottom = "@+id/view_4"
android:padding = "5dp"
android:orientation = "vertical" >
< TextView
android:id = "@+id/title"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:ellipsize = "end"
android:layout_marginTop = "8dp"
android:maxEms = "7"
android:paddingLeft = "5dp"
android:singleLine = "true"
android:text = "需求提交成功"
android:textSize = "16sp" />
< TextView
android:id = "@+id/time"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:ellipsize = "end"
android:layout_below = "@+id/title"
android:layout_marginTop = "15dp"
android:maxEms = "7"
android:paddingLeft = "5dp"
android:singleLine = "true"
android:text = "2015-9-28"
android:textSize = "14sp" />
</ RelativeLayout >
</ RelativeLayout >
|
其实这个东西看起来复杂,实际上挺简单的,就是一个ListView,希望对大家有帮助!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/sinat_16458039/article/details/49617553