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版本;

  • 它有一个测试版本。

  • 链接地址: http://www.djcxy.com/p/29461.html

    上一篇: ListView nested scrolling on API<21

    下一篇: Python regex partial extract