我有以下布局:
<?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
为空且滚动视图正常(没问题,也无法滚动,因为列表为空)
但是当选择“消息”时,当列表为空或只是几个项目时...滚动视图可以滚动(我的意思是很多空间看到图片)
这张图片中心的白色光盘是开发商在设置中选择的触点,它不是我布局的一部分
你可以看到列表在图像2中的结束位置(listView的背景与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 :(得分:0)
我不明白为什么你把scollview放在listview中,你试图执行视差还是玩工具栏?
使用视差或工具栏我使用RecyclerView更简单。 您可以使用ObservableRecyclerView提供大量示例: