android 时间轴 listview,android 时间轴listview的UI界面实现
时间: 2023-12-26 15:05:44 浏览: 79
android listview的实现
5星 · 资源好评率100%
实现 Android 时间轴 ListView 的方法有很多种,下面介绍一种较为简单的实现方式。
1. 创建一个自定义的 ListView 布局文件,包含两个 TextView 控件,分别用于显示时间和内容。
2. 创建一个自定义的 Adapter,继承自 BaseAdapter。
3. 在 Adapter 中重写 getCount()、getItem() 和 getItemId() 方法。
4. 在 Adapter 的 getView() 方法中,加载自定义的 ListView 布局文件,并将数据绑定到对应的控件上。
5. 在 Activity 中使用自定义的 Adapter,并将数据传递给 Adapter。
6. 设置 ListView 的分隔线,可以使用 Android 自带的分隔线,也可以自定义分隔线。
下面是一个简单的代码示例:
1. 自定义 ListView 布局文件 timeline_item.xml:
```
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="16dp"
android:layout_marginTop="8dp"
android:textColor="@color/black"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/tv_time"
android:layout_toRightOf="@+id/tv_time"
android:textColor="@color/black"
android:textSize="16sp" />
</RelativeLayout>
```
2. 自定义 Adapter TimelineAdapter.java:
```
public class TimelineAdapter extends BaseAdapter {
private List<TimelineItem> mList;
private LayoutInflater mInflater;
public TimelineAdapter(Context context, List<TimelineItem> list) {
mList = list;
mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return mList.size();
}
@Override
public Object getItem(int position) {
return mList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.timeline_item, null);
holder = new ViewHolder();
holder.tvTime = convertView.findViewById(R.id.tv_time);
holder.tvContent = convertView.findViewById(R.id.tv_content);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
TimelineItem item = mList.get(position);
holder.tvTime.setText(item.getTime());
holder.tvContent.setText(item.getContent());
return convertView;
}
static class ViewHolder {
TextView tvTime;
TextView tvContent;
}
}
```
3. 在 Activity 中使用自定义的 Adapter:
```
List<TimelineItem> list = new ArrayList<>();
list.add(new TimelineItem("2019-01-01 08:00", "事件1"));
list.add(new TimelineItem("2019-01-01 10:00", "事件2"));
list.add(new TimelineItem("2019-01-01 12:00", "事件3"));
list.add(new TimelineItem("2019-01-01 14:00", "事件4"));
list.add(new TimelineItem("2019-01-01 16:00", "事件5"));
TimelineAdapter adapter = new TimelineAdapter(this, list);
ListView listView = findViewById(R.id.list_view);
listView.setAdapter(adapter);
listView.setDividerHeight(0);
```
这样就可以实现一个简单的 Android 时间轴 ListView。
阅读全文