2015-05-01 2 views
0

у меня есть макет ниже:изменения размера Scrollview, когда его содержание меняется

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:animateLayoutChanges="true" 
    android:orientation="vertical"> 

    <eddine.charef.mechalikh.swipedemo.NotifyingScrollView 
    android:id="@+id/scroll_view" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
     android:layout_marginTop="-40dp" 
     android:fillViewport="false"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 

     <ImageView 
      android:id="@+id/image_header" 
      android:layout_width="match_parent" 
      android:layout_height="250dp" 
      android:src="@drawable/stethoscope" 
      android:scaleType="centerCrop" /> 
     <View 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/view" 
      android:background="@drawable/gradient"/> 
     <View 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/view2" 
      android:layout_above="@+id/linearLay" 
      android:background="@drawable/gradient2" 
      android:visibility="gone" /> 

     <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentEnd="true" 
      android:layout_marginTop="-10dp" 
      android:layout_below="@+id/image_header" 
      android:id="@+id/linearLay" 
      android:animateLayoutChanges="true" 
      android:background="#ffffff" 
      android:layout_alignTop="@+id/editPrenom"> 

      <Space 
       android:layout_width="fill_parent" 
       android:layout_height="22dp" 
       android:id="@+id/space_spinner" 
       android:visibility="gone" /> 

      <Spinner 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/spinner3" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:layout_alignParentRight="true" 
       android:layout_alignParentEnd="true" 
       android:visibility="gone" 
       android:gravity="center" /> 

     </LinearLayout> 


     <ListView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/listView5" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_below="@+id/linearLay" 
      android:visibility="visible" /> 


     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:text="@string/bienvenue" 
      android:id="@+id/textView20" 
      android:textColor="#000" 
      android:layout_centerHorizontal="true" 
      android:layout_below="@+id/view" 
      android:visibility="visible" 
      android:layout_marginTop="20dp" 
      android:gravity="left" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="10dp" /> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:id="@+id/textView21" 
      android:textColor="#000" 
      android:layout_below="@id/textView20" 
      android:layout_centerHorizontal="true" 
      android:visibility="visible" 
      android:gravity="left" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="10dp" /> 
     <ImageView 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/imageView5" 
      android:layout_below="@+id/linearLay" 
      android:src="@drawable/shadow_divider" 
      android:layout_marginTop="-3dp" /> 

     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/imageView2" 
      android:adjustViewBounds="true" 
      android:src="@drawable/param" 
      android:onClick="params_click" 
      android:visibility="visible" 
      android:layout_above="@+id/linearLay" 
      android:layout_alignParentLeft="true" 
      android:layout_marginLeft="15dp" 
      android:layout_marginBottom="-25dp" 
      android:scaleType="center" /> 

    </RelativeLayout> 
</eddine.charef.mechalikh.swipedemo.NotifyingScrollView> 
    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/image_scroll_up_2" 
     android:adjustViewBounds="true" 
     android:src="@drawable/scroll_up" 
     android:onClick="scroll_up" 
     android:visibility="invisible" 
     android:layout_above="@+id/space" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_marginRight="15dp" /> 

    <Space 
     android:layout_width="fill_parent" 
     android:layout_height="15dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:id="@+id/space" /> 
</RelativeLayout> 

во время исполнения listView внутри scrollView будет обновляться ... , когда пользователь нажимает «дата», она отображает все, нормальные (без проблем) , когда он нажимает «следовать», даже если listview пуст и прокрутка просматривается в порядке (без проблем, нельзя прокручивать beacuse, список пуст) , но при выборе «сообщений», когда список пуст или всего несколько элементов. .. вид прокрутки может прокручиваться (я имею в виду, что много места см. на картинке)

enter image description here

enter image description here

ЧТО БЕЛАЯ ДИСК В центре этой картины является точкой касания С ДЕВЕЛОПЕР ВАРИАНТОВ В УСЛОВИЯХ, ЭТО НЕ ЧАСТЬ МОИХ РАСКЛ

вы можете увидеть, список заканчивается на изображении два (фон спискаView не совпадает с scrollView)

Так почему же scrollView не будет изменен?

Примечание: я использовать эту функцию, чтобы изменить размер ListView так оно будет отображаться в Scrollview

  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); 
    } 

и я называю это везде, где изменить элементы.

ответ

0

Я не понимаю, почему вы помещаете scollview внутри списка, пытались ли вы выполнить параллакс или играть с панелью инструментов?

Чтобы играть с параллаксом или панелью инструментов, я более прост в использовании RecyclerView. Вы можете работать с ObservableRecyclerView ведьмой обеспечивает много образцов:

https://github.com/ksoichiro/Android-ObservableScrollView

+0

да вот это .. я плохо попробовать это и сообщить, спасибо обезжиривающего вашего ответа –

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