2016-01-26 5 views
0

Последний, чтобы listViews не прокручивал или не показывал весь элемент.ListView не прокручивает и не отображает весь элемент.

<ScrollView 

    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="#ffffff"> 
    <LinearLayout 
     android:id="@+id/movie_detail_container" 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@color/white" 
    > 

    <LinearLayout android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:background="#04B4AE" 
     android:layout_marginTop="10dp"> 
     <TextView 
      android:id="@+id/title" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:padding="10dp" 
      android:textColor="#ffffff" 
      android:textSize="50dp" /> 
    </LinearLayout> 
    <LinearLayout 
    android:layout_width="382dp" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:layout_marginRight="5dp"> 

    <ImageView 
     android:id="@+id/grid_item_image" 
     android:layout_width="116dp" 
     android:layout_height="199dp" 
     android:layout_marginTop="5dp" 
     android:layout_marginLeft="20dp" 
     android:scaleType="fitCenter" /> 
    <LinearLayout 

     android:layout_height="202dp" 
     android:layout_width="172dp" 
     android:layout_marginLeft="15dp" 
     android:orientation="vertical" > 
     <TextView 
      android:id="@+id/release_date" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom" 
      android:background="#00000c" 
      android:padding="10dp" 
      android:textColor="#fff" 
      android:textSize="20dp" /> 

     <TextView 
      android:id="@+id/vote_average" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom" 
      android:padding="10dp" 
      android:textColor="#000000" 
      android:textSize="25dp" 
      /> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="ADD" 
      android:id="@+id/addfavorite" 
      android:layout_gravity="right|top" /> 


    </LinearLayout> 
    </LinearLayout> 

<TextView 
    android:id="@+id/overview" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom" 
    android:background="@color/white" 
    android:padding="10dp" 
    android:textColor="@color/black" 
    android:textSize="20dp" /> 


<ListView 
    android:id="@+id/reviewMovie" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="20dp" 

    android:background="#04B4AE" 
    android:layout_weight="0.68"> 

</ListView> 


    <ListView 
    android:id="@+id/videoMovie" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/grey" 

    /> 

</LinearLayout> 
</ScrollView> 

Я wan't два последние ListView прокрутки или показать весь пункт внутри них, по крайней мере, и я уверен, что там было содержит много пункта и только один пункт появился

+0

Существует множество проблем с наличием в вашем макете «ListViews». Также существует множество проблем с использованием 'ListView' в' ScrollView'. Вы должны попробовать и подумать о более простой конструкции для вашего экрана, например. объединение представлений списка и добавление этих представлений в качестве заголовка –

+0

Не используйте android: layout_height = "wrap_content" с помощью ListView. Это очень плохо для производительности. –

ответ

0

Прежде всего, его совсем не рекомендуется и целесообразно использовать ListView внутри ScrollView. Вы можете лучше использовать getItemViewType() из ListView, чтобы компенсировать различные типы макетов для элементов строки.

Если вы положили ListView внутри ScrollView, то ListView не тянется до его полной высоты и то же самое происходит с вами. Так что, если вы все еще хотите пойти с ListView внутри: ScrollView, вам нужно рассчитать высоту ListView. Ниже приведен код для расчета высоты ListView на основе детей.

public static void setListViewHeightBasedOnChildren(ListView listView) { 
    ListAdapter listAdapter = listView.getAdapter(); 
    if (listAdapter == null) 
     return; 

    int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.UNSPECIFIED); 
    int totalHeight = 0; 
    View view = null; 
    for (int i = 0; i < listAdapter.getCount(); i++) { 
     view = listAdapter.getView(i, view, listView); 
     if (i == 0) 
      view.setLayoutParams(new ViewGroup.LayoutParams(desiredWidth, LayoutParams.WRAP_CONTENT)); 

     view.measure(desiredWidth, MeasureSpec.UNSPECIFIED); 
     totalHeight += view.getMeasuredHeight(); 
    } 
    ViewGroup.LayoutParams params = listView.getLayoutParams(); 
    params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); 
    listView.setLayoutParams(params); 
} 

Чтобы использовать этот метод, просто передать свой ListView в качестве параметра в функции выше.

ListView listView= (ListView)findViewById(R.id.listView); 
setListViewHeightBasedOnChildren(listView); 
+0

Даже если, удалите прокрутку, просмотр списка не прокручивается :( –

+0

вы можете поделиться снимком экрана, как появляются оба списка ListView? –