Android时间轴简单优化

来源:互联网 发布:淘宝订单打印 编辑:程序博客网 时间:2024/05/22 06:28

今天读了一篇关于android时间轴的文章,原文地址如下:android实现时间轴,现在做一个简单的改动,将竖线的左边距和右边文字布局的高度改成动态设置,代码如下:

改动getView()方法: @Override    public View getView(int position, View convertView, ViewGroup parent) {        ViewHolder holder;        if (convertView==null){            holder = new ViewHolder();            convertView = LayoutInflater.from(context).inflate(R.layout.time_line_item,null,false);            convertView.setTag(holder);        }else {            holder = (ViewHolder) convertView.getTag();        }        holder.rightTexView = (TextView) convertView.findViewById(R.id.right_text);        holder.leftImage = (ImageView) convertView.findViewById(R.id.left_image);        TimeLine timeLine = timeLineList.get(position);        if (timeLine!=null){            holder.rightTexView.setText(timeLine.getText());            holder.leftImage.setImageResource(timeLine.getImageView());            //动态设置line的左边距            View lineTop = convertView.findViewById(R.id.line_top);            View bottom = convertView.findViewById(R.id.line_bottom);            LinearLayout.LayoutParams layoutParams =  (LinearLayout.LayoutParams) lineTop.getLayoutParams();            layoutParams.leftMargin = (holder.leftImage.getWidth())/2;            lineTop.setLayoutParams(layoutParams);            bottom.setLayoutParams(layoutParams);            //动态设置布局高度            LinearLayout linearLayout = (LinearLayout) convertView.findViewById(R.id.right_line);            int height = lineTop.getHeight()+bottom.getHeight()+ holder.leftImage.getHeight();            ViewGroup.LayoutParams lp =  linearLayout.getLayoutParams();            lp.height = height;            linearLayout.setLayoutParams(lp);**        }        return convertView;    }

效果图如下:

0 0