使用 RecyclerView 实现简单时间轴
来源:互联网 发布:如果当时 知乎 编辑:程序博客网 时间:2024/06/05 15:37
使用 RecyclerView 实现简单时间轴
前一段时间在公司中有个项目用到了 时间轴
这种形式的控件,我的第一反应就是去找 demo,但是想想好像并不是很复杂,所以开始着手自己写一个,现在算是搞定了一个简单的时间轴,现在记录一下:
先来上一张图,看看效果:
贴上这么一张图,主要还是不会做 GIF 动图,所以只能放一张半图~~(>_<)~~
时间轴这个东西,说透了,主要是中间的点点还有开始、中间、结束三条线的绘制。
然后开始直接上代码,首先是 RecyclerView 中 Adapter 的 Item 代码:
<?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="wrap_content" android:orientation="vertical"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <ImageView android:id="@+id/construction_detail_iv_circular" android:layout_width="26dp" android:layout_height="26dp" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:src="@drawable/construction_detail_circular" /> <View android:id="@+id/construction_detail_top_line" android:layout_width="1dp" android:layout_height="23dp" android:layout_marginLeft="33dp" android:background="#00cdd0" /> <View android:id="@+id/construction_detail_other_line" android:layout_width="1dp" android:layout_height="10000dp" android:layout_alignBottom="@+id/construction_detail_layout" android:layout_below="@+id/construction_detail_top_line" android:layout_marginLeft="33dp" android:background="#00cdd0" /> <LinearLayout android:id="@+id/construction_detail_layout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="15dp" android:layout_toRightOf="@+id/construction_detail_iv_circular" android:orientation="vertical"> <TextView android:id="@+id/construction_detail_tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_marginRight="5dp" android:text="15:40" android:textColor="@android:color/black" android:textSize="14sp" /> <TextView android:id="@+id/construction_detail_tv_data" android:layout_width="wrap_content" android:layout_marginBottom="5dp" android:layout_height="wrap_content" android:layout_marginRight="5dp" android:text="" android:textColor="@android:color/black" android:textSize="14sp" /> </LinearLayout> </RelativeLayout></LinearLayout>
这就是设计之后的样子!!!
适配器一直是使用 BaseRecyclerViewAdapterHelper,主要还是这个比较简单、方便、已操作的。
然后是 Adapter 的代码:
package com.admin.recyclerview.adapter;import android.view.View;import com.admin.recyclerview.R;import com.admin.recyclerview.bean.TimeAxis;import com.admin.recyclerview.util.Info;import com.chad.library.adapter.base.BaseItemDraggableAdapter;import com.chad.library.adapter.base.BaseViewHolder;import java.util.List;public class TimeAxisQuickAdapter extends BaseItemDraggableAdapter<TimeAxis> { public TimeAxisQuickAdapter(List<TimeAxis> data) { super(R.layout.time_axis_mb, data); List<TimeAxis> list = data; } @Override protected void convert(BaseViewHolder baseViewHolder, TimeAxis timeAxis) { baseViewHolder .setText(R.id.construction_detail_tv_time, timeAxis.getTime())// 时间 .setText(R.id.construction_detail_tv_data, timeAxis.getData())// 内容 .setVisible(R.id.construction_detail_other_line, (Info.isEmptyOrNullString(timeAxis.getPosition()) || !timeAxis.getPosition().equals("1")));// 判断是不是尾,如果是,隐藏; // 判断是不是开头,如果是,隐藏开始的线 View view_TopLine = baseViewHolder.getView(R.id.construction_detail_top_line); if ((!Info.isEmptyOrNullString(timeAxis.getPosition()) && timeAxis.getPosition().equals("0"))) { view_TopLine.setVisibility(View.INVISIBLE); } }}
首先判断 timeAxis 实体类中的 Position 是不是为空,如果为空,则证明是中间,如果是 “0” 则为开头,如果是 “1” 则为结尾,然后判断显示和隐藏就好了。
然后只需要在对应的 Activity 中进行相应的 RecyclerView 的配置就可以了。
放一张删除部分内容之后的全部显示图,这就搞定了~!
然后放一个我自己 GitHub 的地址:项目地址
阅读全文
0 0
- 使用 RecyclerView 实现简单时间轴
- 使用RecyclerView实现时间轴
- 使用RecyclerView实现时间轴效果
- RecyclerView实现时间轴
- Android 时间轴的实现(RecyclerView更简单)
- Android时间轴(Timeline)效果的实现(使用RecyclerView)
- 使用RecyclerView实现简单的聊天页面
- RecyclerView 列表控件中简单实现时间线
- RecyclerView 列表控件中简单实现时间线
- Recyclerview的一些个人理解与使用(五)Recyclerview的联动,时间选择的实现
- RecyclerView的简单使用
- RecyclerView 的简单使用
- recyclerview的简单使用
- Recyclerview的简单使用
- RecyclerView的简单使用
- RecyclerView简单使用
- RecyclerView简单使用
- RecyclerView的简单使用
- Java-基础知识
- Mac下Docker容器运行SQL Server 2017
- PAT 甲级 1075. PAT Judge (25)
- π 的定义(极限)
- CSS导航栏制作
- 使用 RecyclerView 实现简单时间轴
- Springboot学习笔记(二)
- poj 2386--Lake Counting
- 《c primer plus》笔记<一>
- github上传本地项目指南
- c#开发大全、系列文章、精品教程
- MySQL 索引
- c#读取图片成rgb二维数组
- 剑指offer 二叉树的镜像