저는 매우 일반적인 문제에 직면하고 있습니다. 활동을 배치했는데 이제이 안에 몇 가지 항목이 표시되어야합니다 ScrollView
. 이를 수행하는 일반적인 방법은 기존을 사용하여 ListAdapter
a에 연결 ListView
하고 BOOM 에 항목 목록이있는 것입니다.
그러나 스크롤링을 망치기 때문에 중첩 ListView
을 배치해서는 안됩니다. ScrollView
심지어 Android Lint도 이에 대해 불평합니다.
그래서 여기 내 질문이 있습니다.
ListAdapter
를 a LinearLayout
또는 비슷한 것에 어떻게 연결 합니까?
이 솔루션이 많은 항목에 대해 확장되지는 않지만 목록이 매우 짧기 때문에 (<10 항목) 뷰를 재사용 할 필요가 없다는 것을 알고 있습니다. 성능 측면에서 모든 뷰를 LinearLayout
.
내가 생각 해낸 한 가지 해결책은 기존 활동 레이아웃을 ListView
. 그러나 이것은이 메커니즘을 남용하는 것처럼 느껴져 더 깨끗한 솔루션을 찾고 있습니다.
아이디어?
업데이트 : 올바른 방향을 제시하기 위해 샘플 레이아웃을 추가하여 문제를 보여줍니다.
<?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 이해하기 쉽도록 헤드 라인을 변경했습니다 (비정 표를 받았습니다, doh!).