2011-09-06 9 views
0

Я следующую активность:Android ListView не расширяет весь экран?

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/FiltersLayout" android:orientation="vertical" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    > 
    <ScrollView android:id="@+id/FiltersScroll" 
     android:orientation="vertical" android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1"> 
     <ExpandableListView android:id="@+id/featureList" 
      android:layout_width="fill_parent" android:stretchColumns="*" android:orientation="vertical" android:layout_height="fill_parent"> 

     </ExpandableListView> 

    </ScrollView> 
</LinearLayout> 

мне нужна ExpandableListView поцарапать экран, но он показывает, как:

[Anzroiz ListView] [1]

+2

посмотреть список можно прокручивать уже, почему и хочет, чтобы это было в целях прокрутки? –

ответ

1

Попробуйте изменить! высота ScrollView до fill_parent, но на самом деле вы должны опустить ScrollView целиком, так как ListView предлагает собственную прокрутку.

+0

Можете ли вы помочь мне на этом http://stackoverflow.com/questions/7322100/android-listview-doesnt-expand-the-whole-screen-2? –

3

U Cann этого метод вызывается после установки адаптера в список .... Это Работает

private void setListViewHeightBasedOnChildren(ListView listView) { 
     ListAdapter listAdapter = listView.getAdapter(); 
     if (listAdapter == null) { 
      // pre-condition 
      return; 
     } 
     int totalHeight = 0; 
     int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.AT_MOST); 
     for (int i = 0; i < listAdapter.getCount(); i++) { 
      View listItem = listAdapter.getView(i, null, listView); 
      listItem.measure(desiredWidth, MeasureSpec.UNSPECIFIED); 
      totalHeight += listItem.getMeasuredHeight(); 
     } 
     ViewGroup.LayoutParams params = listView.getLayoutParams(); 
     params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); 
     listView.setLayoutParams(params); 
     listView.requestLayout(); 
    } 
+0

Хорошо работает, но иногда он не расширяется –

Смежные вопросы