Çok yaygın bir sorunla karşı karşıyayım: Bir etkinlik düzenledim ve şimdi bunun içinde birkaç öğe göstermesi gerektiği ortaya çıktı ScrollView. Bunu yapmanın normal yolu, var olanı kullanmak, ListAdapteronu bir'e bağlamak ListViewve BOOM'a öğeler listeme sahip olmaktır .
ANCAK Sen iç içe geçmiş bir yer olmamalıdır ListViewbir de ScrollViewhatta Android Lint bu konuda şikayet - kaydırma yukarı o vida gibi.
İşte sorum şu:
ListAdapterA LinearLayoutveya benzeri bir şeye nasıl bağlanırım ?
Bu çözümün pek çok öğe için ölçeklenmeyeceğini biliyorum, ancak listelerim çok kısa (<10 öğe), bu nedenle görünümlerin yeniden kullanılması gerçekten gerekli değil. Performans açısından tüm görünümleri doğrudan LinearLayout.
Bulduğum çözümlerden biri, mevcut etkinlik düzenimi .NET Framework'ün headerView bölümüne yerleştirmek olabilir ListView. Ama bu, bu mekanizmayı kötüye kullanmak gibi geliyor, bu yüzden daha temiz bir çözüm arıyorum.
Fikirler?
GÜNCELLEME: Doğru yöne ilham vermek için sorunumu göstermek için örnek bir düzen ekliyorum:
<?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>
GÜNCELLEME 2 Anlaşılmasını kolaylaştırmak için başlığı değiştirdim (olumsuz oy aldım, doh!).