SORU
16 AĞUSTOS 2010, PAZARTESİ


Nasıl çökmeden bir ScrollView içine bir liste Görünümü koyabilir miyim?

Bu soruna çözüm ararken etrafta yaptım ve bulabildiğim tek cevap gibi görünüyor "don't put a ListView into a ScrollView". Henüz herhangi bir gerçek açıklama göremedimnedengerçi. Bulamadım tek sebebi Google bunu yapmak gerektiğini düşünmüyor. İyi yapıyorum, ben de öyle yaptım.

Şimdi asıl soru, nasıl o olmadan bir ScrollView minimum yüksekliği çöken bir liste Görünümü verir misiniz?

CEVAP
16 AĞUSTOS 2010, PAZARTESİ


İşte benim çözüm. Android platformu için oldukça yeniyim, ve bu biraz hackish, özellikle arama kısmı eminim .doğrudan ölçü ve ayar LayoutParams .yükseklik ama işe yarıyor doğrudan özelliği.

Tüm yapmanız gereken bir arama Programı.setListViewHeightBasedOnChildren(yourListView) ve tam olarak kendi öğeleri yüksekliğini sığması için yeniden.

    public class Utility {
        public static void setListViewHeightBasedOnChildren(ListView listView) {
              ListAdapter listAdapter = listView.getAdapter();
            if (listAdapter == null) {
            // pre-condition
                  return;
            }

            int totalHeight = listView.getPaddingTop()   listView.getPaddingBottom();
            for (int i = 0; i < listAdapter.getCount(); i  ) {
                 View listItem = listAdapter.getView(i, null, listView);
                 if (listItem instanceof ViewGroup) {
                    listItem.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
                 }
                 listItem.measure(0, 0);
                 totalHeight  = listItem.getMeasuredHeight();
            }

            ViewGroup.LayoutParams params = listView.getLayoutParams();
            params.height = totalHeight   (listView.getDividerHeight() * (listAdapter.getCount() - 1));
                      listView.setLayoutParams(params);
        }
     }

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ammine Getahun

    Ammine Getah

    21 HAZİRAN 2011
  • ELPRESADOR

    ELPRESADOR

    21 HAZİRAN 2008
  • Snazzy Labs

    Snazzy Labs

    9 Aralık 2008