我面临着一个非常普遍的问题:
我设计了一个活动,现在它应该在这个 ScrollView
中显示一些项目。通常的做法是使用现有的 ListAdapter
,连接到一个 ListView
和 砰我会有我的项目列表。
但是 你不应该把一个嵌套的 ListView
放在一个 ScrollView
中,因为它会扰乱滚动——甚至 Android Lint 也抱怨它。
所以我的问题是:
如何将一个 ListAdapter
连接到一个 LinearLayout
或类似的东西?
我知道这个解决方案不会扩展到很多项目,但是我的列表非常短(< 10个项目) ,因此并不真正需要重用视图。在性能方面,我可以将所有视图直接放入 LinearLayout
。
我想到的一个解决方案是将我现有的活动布局放在 ListView
的 headerView 部分。但这感觉像是滥用这个机制,所以我在寻找一个更干净的解决方案。
有什么想法吗?
更新: 为了激发正确的方向,我添加了一个样本布局来展示我的问题:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/news_detail_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:visibility="visible">
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFF"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:paddingLeft="@dimen/news_detail_layout_side_padding"
android:paddingRight="@dimen/news_detail_layout_side_padding"
android:paddingTop="@dimen/news_detail_layout_vertical_padding"
android:paddingBottom="@dimen/news_detail_layout_vertical_padding"
>
<TextView
android:id="@+id/news_detail_date"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:gravity="center_horizontal"
android:text="LALALA"
android:textSize="@dimen/news_detail_date_height"
android:textColor="@color/font_black"
/>
<Gallery
android:id="@+id/news_detail_image"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:paddingTop="5dip"
android:paddingBottom="5dip"
/>
<TextView
android:id="@+id/news_detail_headline"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:gravity="center_horizontal"
android:text="Some awesome headline"
android:textSize="@dimen/news_detail_headline_height"
android:textColor="@color/font_black"
android:paddingTop="@dimen/news_detail_headline_paddingTop"
android:paddingBottom="@dimen/news_detail_headline_paddingBottom"
/>
<TextView
android:id="@+id/news_detail_content"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="Here comes a lot of text so the scrollview is really needed."
android:textSize="@dimen/news_detail_content_height"
android:textColor="@color/font_black"
/>
<!---
HERE I NEED THE LIST OF ITEMS PROVIDED BY THE EXISTING ADAPTER.
They should be positioned at the end of the content, so making the scrollview smaller is not an option.
---->
</LinearLayout>
</ScrollView>
</LinearLayout>
更新2 我改变了标题,使它更容易理解(得到否决票,哦!)。