Saya menghadapi masalah yang sangat umum: Saya menyusun sebuah aktivitas dan sekarang ternyata aktivitas tersebut harus menampilkan beberapa item di dalamnya ScrollView. Cara normal untuk melakukannya adalah dengan menggunakan yang ada ListAdapter, hubungkan ke a ListViewdan BOOM Saya akan memiliki daftar item saya.
TETAPI Anda tidak boleh menempatkan bersarang ListViewdi a ScrollViewkarena mengacaukan pengguliran - bahkan Android Lint mengeluhkannya.
Jadi, inilah pertanyaan saya:
Bagaimana cara menghubungkan ListAdapterke a LinearLayoutatau yang serupa?
Saya tahu solusi ini tidak akan diskalakan untuk banyak item tetapi daftar saya sangat pendek (<10 item) sehingga penggunaan kembali tampilan tidak terlalu diperlukan. Dari segi kinerja, saya bisa hidup dengan menempatkan semua tampilan langsung ke LinearLayout.
Satu solusi yang saya dapatkan adalah menempatkan layout aktivitas saya yang ada di bagian headerView dari ListView. Tapi ini terasa seperti menyalahgunakan mekanisme ini, jadi saya mencari solusi yang lebih bersih.
Ide ide?
UPDATE: Untuk menginspirasi arah yang benar, saya menambahkan contoh tata letak untuk menunjukkan masalah saya:
<?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>
UPDATE 2 Saya mengubah headline agar lebih mudah dipahami (mendapat downvote, doh!).