标题很清晰。我现在有这样的布局:
工具栏和选项卡布局都在AppBarLayout中,所以我可以使用滚动标志来隐藏向顶部滚动时的工具栏。问题在于,这仅适用于支持嵌套滚动的视图。大多数选项卡 - 我的意思是大多数页面 - 都是support.v4.NestedScrollView,所以没问题;其他一些是(并且需要)ListView。
从Lollipop开始,我只需将android:nestedScrollingEnabled =“true”添加到列表视图中,工具栏就会在滚动时正确隐藏。
但是,在API<21上,没有这样的属性,工具栏不会隐藏。更重要的是,列表中的最后几项被隐藏了,因为在CoordinatorLayout中存在一些测量错误:listview表现得好像它占用了工具栏当前占用的空间。
解决方案:
1. 切换到支持嵌套滚动的RecyclerView:不行,因为我需要使用一个外部库适配器,它只能与适配器视图一起使用,而我无法替换它(即ParseQueryAdapter);
2. 扩展ListView并实现嵌套滚动:似乎太复杂了;
3. 扩展ListView并实现一些解决方法,例如测量内容以避免最后一个项目的问题或(和)自定义行为以使工具栏隐藏:也似乎很复杂;
4. 使用一些布局技巧:没有找到。
有什么帮助吗?
例如,我(绝望地)尝试过:
_________________
|_______________| <- Toolbar
|___|___|___|___| <- Tablayout
| |
| |
| ViewPager |
| |
|_______________|
工具栏和选项卡布局都在AppBarLayout中,所以我可以使用滚动标志来隐藏向顶部滚动时的工具栏。问题在于,这仅适用于支持嵌套滚动的视图。大多数选项卡 - 我的意思是大多数页面 - 都是support.v4.NestedScrollView,所以没问题;其他一些是(并且需要)ListView。
从Lollipop开始,我只需将android:nestedScrollingEnabled =“true”添加到列表视图中,工具栏就会在滚动时正确隐藏。
但是,在API<21上,没有这样的属性,工具栏不会隐藏。更重要的是,列表中的最后几项被隐藏了,因为在CoordinatorLayout中存在一些测量错误:listview表现得好像它占用了工具栏当前占用的空间。
解决方案:
1. 切换到支持嵌套滚动的RecyclerView:不行,因为我需要使用一个外部库适配器,它只能与适配器视图一起使用,而我无法替换它(即ParseQueryAdapter);
2. 扩展ListView并实现嵌套滚动:似乎太复杂了;
3. 扩展ListView并实现一些解决方法,例如测量内容以避免最后一个项目的问题或(和)自定义行为以使工具栏隐藏:也似乎很复杂;
4. 使用一些布局技巧:没有找到。
有什么帮助吗?
例如,我(绝望地)尝试过:
<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
一样布局。我只能得到一个高度较小的视图,而页面的其余部分为空白。