nat*_*rio 8 android android-listview android-support-library android-design-library android-appbarlayout
标题很清楚.我有这个布局:
_________________
|_______________| <- Toolbar
|___|___|___|___| <- Tablayout
| |
| |
| ViewPager |
| |
|_______________|
Run Code Online (Sandbox Code Playgroud)
工具栏和tablayout都在一个内部AppBarLayout
,所以我可以使用滚动标记来隐藏工具栏向上滚动.问题是这只适用于嵌套滚动支持的视图.大多数标签 - 我的意思是,大多数页面 - 是support.v4.NestedScrollView
s,所以这是可以的; 其他人(并且需要)ListView
.
从Lollipop开始,我可以简单地添加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>
Run Code Online (Sandbox Code Playgroud)
但是这种方式ListView
并没有被列为match_parent
.我得到一个小高度的小视图,页面的其余部分是空的.
不幸的是,没有办法让嵌套滚动正常工作ListView
- 否则不需要像 API 21 中那样进行修改。
您会注意到当前的Parse SDK实际上已完全删除ParseQueryAdapter
。鉴于此,直接使用 Parse 查询 APIRecyclerView
开始构建您自己的适配器可能是有意义的。
归档时间: |
|
查看次数: |
9265 次 |
最近记录: |