对于我的应用程序,我想启用一个看起来像这样的东西:
<ScrollView>
<LinearLayout orientation="vertical">
<FrameLayout layout_height="48dp">
Anything I want here...
</FrameLayout>
<ListView>
It's size will be set to screen height anyway
</ListView>
</LinearLayout>
</ScrollView>
我想这样做的是,当用户触摸屏幕进行滚动时,首先只有scrollview滚动,然后,当滚动到达其边缘之一时,滚动事件进入listview并开始滚动.
我该如何实现?
附言这样做的原因是要制作某种隐藏的动作栏,当用户更深入时,该动作栏会从屏幕上滚动下来,然后当他向上滚动时,它应该从底部而不是通过动画出现,而是随着列表的移动而出现.因此,如果我将列表滚动到动作栏高度的一半处-我会在屏幕上看到动作栏的下半部分.
您可以在iOS Google应用中了解我的意思.
任何帮助将不胜感激.
解决方法:
在Layaout中设置参数
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fillViewport="true" >
<ListView
android:id="@+id/listview"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</ListView>
</ScrollView>
并在编码部分根据设备高度设置列表视图的动态高度
LayoutParams lp = (LayoutParams) list1.getLayoutParams();
int height = (arraylist.size()) * 80;
//arraylist list is in which all data is kept
lp.height = height;
listview.setLayoutParams(lp);
listview.setAdapter(Adapter);