android 时间轴 listview,listView实现时间轴

遇到一需求做一个时间轴左边是时间,右边是内容,中间就是那个轴的图片,

?1.中间轴线的图片需要根据内容的多少被拉长;

?2.顶部的圆点图片的位置不能左右边内容的顶部;

?3.底部不要轴线以圆点ImageView结束;

分析:

问题?1:设置图片parent的parent为wrap_content,设置android:minHeight="100dp",设置parent为match_parent;设置轴线ImageView为match_parent

问题?2:在轴线ImageView上面添加一个View(view_head),设置适当的高度,使轴线ImageView被顶下去;在Adapter中position<1的时候设置

view_head为透明色holder.view_head.setBackgroundColor(context.getResources().getColor(android.R.color.transparent));

问题?3:adapter中判断是否是最后一条数据来隐藏轴线

上代码:

1.item_result_his

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="horizontal"

>

android:id="@+id/tvDate"

android:layout_width="0dp"

android:layout_weight="1"

android:layout_height="wrap_content"

android:text="TextView"

android:textColor="@color/blue_deep"

android:textSize="@dimen/font14"

android:gravity="right"

android:padding="@dimen/h8"/>

android:layout_width="0dp"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:layout_weight="2"

android:minHeight="100dp">

android:layout_width="wrap_content"

android:layout_height="match_parent"

android:layout_marginLeft="@dimen/h16"

android:layout_marginRight="@dimen/h16"

android:gravity="center_horizontal"

android:orientation="vertical"

>

android:id="@+id/view_head"

android:layout_width="1dp"

android:layout_height="0dp"

android:layout_weight="1"

android:background="@color/blue_deep" />

android:id="@+id/imageView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/checkreport_timebase_circle"

android:layout_centerHorizontal="true"

/>

android:id="@+id/iv_line"

android:layout_width="wrap_content"

android:layout_height="0dp"

android:background="@drawable/checkreport_timebase_line"

android:layout_weight="3"

/>

android:id="@+id/tvDoWhat"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="ewTeTextVieTextViewTextViewTextViewTextViewTextView"

android:textColor="@color/black"

android:textSize="@dimen/font14"

android:padding="@dimen/h8"/>

2.HistoryAdapter

package cn.szwx.app.business.adapter;

import java.util.ArrayList;

import android.content.Context;

import android.graphics.Color;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ImageView;

import android.widget.TextView;

import cn.szwx.app.business.R;

import cn.szwx.app.business.entity.HistoryBean;

public class HistoryAdapter extends BaseAdapter{

private ArrayList list;

private Context context;

public HistoryAdapter(Context context,ArrayList list){

this.context=context;

this.list=list;

}

@Override

public int getCount() {

return list.size();

}

@Override

public HistoryBean getItem(int arg0) {

return list.get(arg0);

}

@Override

public long getItemId(int arg0) {

return arg0;

}

@Override

public View getView(int arg0, View convertView, ViewGroup parent) {

ViewHolder holder=null;

if(convertView==null){

convertView=View.inflate(context, R.layout.item_result_his, null);

holder=new ViewHolder();

holder.tvDate=(TextView) convertView.findViewById(R.id.tvDate);

holder.tvDoWhat=(TextView) convertView.findViewById(R.id.tvDoWhat);

holder.view_head=(View) convertView.findViewById(R.id.view_head);

holder.iv_line=(ImageView) convertView.findViewById(R.id.iv_line);

convertView.setTag(holder);

}else{

holder=(ViewHolder) convertView.getTag();

}

HistoryBean bean =list.get(arg0);

holder.tvDate.setText(bean.getDate());

holder.tvDoWhat.setText(bean.getRole()+bean.getWhatToDo());

//设置顶部View为透明色来控制顶部的显示

if(arg0<1){

//holder.view_head.setBackgroundColor(context.getResources().getColor(R.color.white));

holder.view_head.setBackgroundColor(context.getResources().getColor(android.R.color.transparent));

}else{

}

//控制底部的显示

if(list.size()>0){

if(arg0==list.size()-1){

holder.iv_line.setVisibility(View.GONE);

}else{

holder.iv_line.setVisibility(View.VISIBLE);

}

}

return convertView;

}

class ViewHolder{

TextView tvDate;

TextView tvDoWhat;

View view_head;

ImageView iv_line;

}

public void notifyDataSetChanged(ArrayList data) {

this.list=data;

notifyDataSetChanged();

}

}

3.调用:

HistoryBean bean2=new HistoryBean(); bean2.setDate("2015.1.1"); bean2.setWhatToDo("做了什么做了什么做了什么做了什么做了什么做了什么做了什么做了什么" + "做了什么做了什么做了什么做了什么做了什么做了什么做了什么做了什么" + "做了什么做了什么做了什么做了什么做了什么做了什么做了什么做了什么做了什么做了什么"); bean2.setRole("什么角色"); list.add(bean2); //设置Adapter for (int i = 0; i <40; i++) { HistoryBean bean=new HistoryBean(); bean.setDate("2015.1.1"+i); bean.setWhatToDo("做了什么"+i); bean.setRole("什么角色"); list.add(bean); } adapter=new HistoryAdapter(context, list); rootView.setAdapter(adapter);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值