【发布时间】:2014-07-15 06:27:06
【问题描述】:
我想存档的东西可以用一张图片来解释
灰色框代表屏幕,蓝色框是元信息,白色圆角框是SearchView,红色框是搜索返回的项目。
到目前为止,我已经完成了这项工作,但是当用户搜索某些内容并且项目超出屏幕 (1) 时,就会出现问题。之后用户向下滚动,因此元信息位于屏幕之外 (2)。用户现在仍然可以输入新的搜索查询,从而更改项目。但是,当新查询返回的项目太少而无法填满屏幕的其余部分 (3) 时,ScrollView 将“跳”回顶部(不在图像中,不需要)。我想要的是 SearchView 保持不变的行为 (3)。一旦处于此状态,用户就可以滚动回顶部 (4)。如果她这样做了,她将无法向后滚动,而是会显示过度滚动指示器。
在 Google+ 应用中可以看到类似的行为。从开始屏幕转到您的个人资料(点击顶部的您的姓名)。您将看到三个寄存器(“关于我”、“帖子”、“照片”*)。例如,我那里没有照片,行为与描述的一样。
edit ScrollView 是 View 的根。
编辑基本布局结构
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:overScrollMode="always"
android:fillViewport="true">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View /> <!-- Meta info -->
<SearchView />
<View /> <!-- Item representing search result -->
<View /> <!-- Item representing search result -->
<View /> <!-- Item representing search result -->
<View /> <!-- Item representing search result -->
<View /> <!-- Item representing search result -->
</LinearLayout>
</ScrollView>
*) 假定翻译自德语应用程序。
【问题讨论】:
-
由于我通常不熟悉这是如何完成的,也许您可以提供一些 sn-ps,说明哪些类正在用于实现您迄今为止工作的这种滚动行为。思考这个过程并试图找到一种方法。
-
您是否尝试过使用 scrollTo() 将 ScrollView 向下移动?不确定它是否应该使用,但它可能会有所帮助。
-
这只是一个简单的 ScrollView 围绕其他所有内容。没什么特别的。
-
是的,我试过scrollTo,它不起作用。问题是 ScrollView 缩小到内容。这激发了将 fillViewport 与滚动到一起使用的想法。
-
@Mene 有内置的行为来实现(2)您将搜索组件保持在顶部的位置?或者您有一些代码管理并保持在屏幕外,同时将搜索栏保持在顶部?
标签: android scrollview