android 时间轴 listview,android 时间轴listview的UI界面实现
时间: 2023-11-16 18:04:09 浏览: 87
实现 Android 时间轴 ListView 的 UI 界面,可以通过自定义 ListView 的 Item 布局来实现。下面是一个简单的实现步骤:
1. 在布局文件中定义 ListView:
```xml
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
2. 自定义 ListView Item 布局,可以使用 LinearLayout 或 RelativeLayout 实现。
```xml
<LinearLayout
android:id="@+id/itemLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="16dp">
<View
android:id="@+id/line"
android:layout_width="2dp"
android:layout_height="match_parent"
android:background="@color/colorPrimaryDark" />
<LinearLayout
android:id="@+id/contentLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:orientation="vertical">
<TextView
android:id="@+id/titleText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/colorPrimaryDark"
android:textSize="18sp" />
<TextView
android:id="@+id/descriptionText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@android:color/darker_gray"
android:textSize="14sp" />
<TextView
android:id="@+id/timeText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@android:color/darker_gray"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
```
3. 在 Java 代码中设置 ListView 的 Adapter,实现时间轴效果。
```java
public class TimelineAdapter extends ArrayAdapter<String> {
private LayoutInflater inflater;
public TimelineAdapter(Context context, List<String> items) {
super(context, R.layout.item_timeline, items);
inflater = LayoutInflater.from(context);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.item_timeline, null);
holder = new ViewHolder();
holder.line = convertView.findViewById(R.id.line);
holder.titleText = convertView.findViewById(R.id.titleText);
holder.descriptionText = convertView.findViewById(R.id.descriptionText);
holder.timeText = convertView.findViewById(R.id.timeText);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
String item = getItem(position);
holder.titleText.setText(item);
holder.descriptionText.setText("Description " + position);
holder.timeText.setText("Time " + position);
if (position == 0) {
holder.line.setVisibility(View.INVISIBLE);
} else {
holder.line.setVisibility(View.VISIBLE);
}
return convertView;
}
static class ViewHolder {
View line;
TextView titleText;
TextView descriptionText;
TextView timeText;
}
}
```
4. 在 Activity 中使用 TimelineAdapter 设置 ListView。
```java
public class MainActivity extends AppCompatActivity {
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
List<String> items = new ArrayList<>();
for (int i = 0; i < 10; i++) {
items.add("Item " + i);
}
listView = findViewById(R.id.listView);
listView.setAdapter(new TimelineAdapter(this, items));
}
}
```
这样就可以实现 Android 时间轴 ListView 的 UI 界面了。
阅读全文