开发中时常会遇到用ListView实现类似朋友圈列表的复杂布局,如果一个条信息即为ListView中一项时,那么单个布局的结构会变的很复杂,也会影响列表滚动的流畅性。由于Adapter可以使用多种布局,所以这里采用的方式是将单个信息的布局拆分为多个ListView的item来达到优化的目的。借用facebook新闻页ListView优化中的一张图
先上一张效果图:
这里将一条信息的页面拆分为4个:title, body, image, bottom。
item_title.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:padding="5dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/title"/>
</LinearLayout>
item_body.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp"
android:background="@android:color/white">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Large Text"
android:lines="4"
android:id="@+id/body"/>
</LinearLayout>