ListView在API <21上嵌套滚动
标题很清楚。 我有这样的布局:
_________________
|_______________| <- Toolbar
|___|___|___|___| <- Tablayout
| |
| |
| ViewPager |
| |
|_______________|
工具栏和tablayout都在AppBarLayout
,所以我可以使用滚动标志来隐藏向顶部滚动的工具栏。 问题是这只适用于嵌套滚动支持的视图。 大多数选项卡 - 我的意思是大多数页面 - 都是support.v4.NestedScrollView
,因此没问题; 其他人(并且需要) ListView
。
从棒棒糖开始,我可以简单地将android:nestedScrollingEnabled="true"
到列表视图中,并且工具栏在滚动时隐藏。
但在API <21上,没有这样的属性,工具栏也不会隐藏。 更重要的是,由于CoordinatorLayout
存在一些测量错误,列表中最后一项隐藏起来:listview的行为就好像它有当前由工具栏占用的空间。
解决方案:
切换到支持嵌套滚动的RecyclerView
:我不行,因为我需要使用只适用于适配器视图的外部库适配器,并且我不能替换(即ParseQueryAdapter
);
扩展ListView
并实现嵌套滚动:看起来很复杂;
扩展ListView
并实施一些解决方法,比如测量内容以避免最后一项问题或(和)使用户隐藏工具栏的自定义行为:似乎也很复杂;
使用一些布局技巧:找不到。
任何帮助?
例如,我(拼命)尝试:
<android.support.v4.widget.NestedScrollView
android:nestedScrollingEnabled="true"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</android.support.v4.widget.NestedScrollView>
但是,这种方式ListView
不是作为match_parent
布局的。 我得到一个小高度的小视图,页面的其余部分是空的。
不幸的是,在ListView
上没有办法获得嵌套的滚动工作 - 否则它不需要在API 21中完成的修改。
你会注意到当前的Parse SDK已经完全移除了ParseQueryAdapter
。 鉴于此,直接使用Parse查询API开始构建自己的基于RecyclerView
的适配器可能很有意义。
对于那些在特定的ParseQueryAdapter
问题中出现的问题,
parse.com的人正在研究RecyclerView.Adapter版本;
它有一个测试版本。