当前位置: 首页 > 知识库问答 >
问题:

ListView在API

严升
2023-03-14

标题很清楚。我有这样的布局:

_________________
|_______________| <- Toolbar    
|___|___|___|___| <- Tablayout
|               |
|               |
|   ViewPager   |
|               |
|_______________|

toolbar和tablayout都在< code>AppBarLayout中,所以我可以使用滚动标志在滚动到顶部时隐藏工具栏。问题是这只适用于支持嵌套滚动的视图。大部分选项卡——我是说,大部分页面——都是< code > support . v4 . nestedscrollview 的,所以没问题;其他的是(并且需要是)< code>ListViews。

从Lollipop开始,我可以简单地将< code > Android:nestedScrollingEnabled = " true " 添加到列表视图中,工具栏在滚动时会正确隐藏。

在 API 上

解决方案:

>

  • 切换到RecyclerView,它确实支持嵌套滚动:我不能,因为我需要使用仅适用于适配器视图并且我无法替换的外部库适配器(即ParseQueryAdapter);

    扩展< code>ListView并实现嵌套滚动:看起来很复杂;

    扩展< code>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。我得到了一个小高度的小视图,页面的其余部分是空的。

  • 共有3个答案

    吴鸿禧
    2023-03-14

    我实际上是一名Xamarin开发人员,所以我无法测试这是否适用于这种特定情况,但我在Xamarin中找到了一个对我有帮助的答案,所以我要分享它:

    我发现了一个非常有效的解决方案,可以毫无问题地滚动ListView:

    ListView lv = (ListView)findViewById(R.id.myListView);  // your
    listview inside scrollview lv.setOnTouchListener(new
    ListView.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            int action = event.getAction();
            switch (action) {
            case MotionEvent.ACTION_DOWN:
                // Disallow ScrollView to intercept touch events.
                v.getParent().requestDisallowInterceptTouchEvent(true);
                break;
    
            case MotionEvent.ACTION_UP:
                // Allow ScrollView to intercept touch events.
                v.getParent().requestDisallowInterceptTouchEvent(false);
                break;
            }
    
            // Handle ListView touch events.
            v.onTouchEvent(event);
            return true;
        }
    });
    

    这样做是禁用ScrollView上的TouchEvents并使ListView拦截它们。它很简单并且一直有效。

    如果这不起作用,请告诉我,这样我就可以删除这个答案。但也许这对任何人都有帮助,因为我也发现了这个问题,而且似乎没有解决办法

    萧英睿
    2023-03-14

    对于那些在特定的ParseQueryAdapter问题中穿插的人,

    > < Li > < p > parse.com的员工正在进行一项回收调查。适配器版本;

    它有一个测试版。

    周浩博
    2023-03-14

    不幸的是,没有办法让嵌套滚动在<code>列表视图</code>上工作,否则它不需要API 21中所做的修改。

    您会注意到,当前的Parse SDK实际上已经完全删除了ParseQueryAdapter。有鉴于此,直接使用解析查询API开始构建您自己的基于<code>RecyclerView</code>的适配器可能是有意义的。

     类似资料:
    • 我有一块碎片。加载的视图的onCreateView方法上的这个片段有一个ListView(a)(在适配器(a)中填充)。但是,此ListView(A)中有另一个ListView(B)。所以现在,我必须调用适配器(B)来填充这个listview(B)。如果我从片段调用它,我会得到一个空指针,如果我从适配器调用它(a),它不会崩溃,但不会工作。 如何调用另一个适配器中的适配器。 这是片段的代码: 其中

    • 入门和简单示例 List-View 是由操作系统提供的最精心设计的控件之一. 在其最容易识别的形式中, 它显示一个多行多列组成的表格视图, 最常见的例子是资源管理器的文件和文件夹列表 (详细信息视图). 尽管它可能是精细的, 但 ListView 的基本功能也易于使用. 创建 ListView 的语法为: Gui, Add, ListView, Options, ColumnTitle1|Colu

    • 我只是为 而我得到一些错误 错误:(166,86)错误:不是抽象的并且没有覆盖OnItemLongClick(AdapterView, View, int, long)中的抽象方法OnItemLongClick(AdapterView, int, long)错误:(168,25)错误:onItemLongClick(AdapterView, View, int, long)中无法实现OnItemL

    • �� �� taro-listview 列表内部懒模块-解决小程序图片过多内存问题 skeleton 拓展状态屏 virtual-list(WIP)【虚拟列表】 支持TaroV3 、NPM版本2.x.x 维护平台 微信小程序、h5 文档 Documents 安装方式 安装:npm i taro-listview,yarn add taro-listview 使用案例 引入组件 列表 Demo !!

    • 问题内容: 我正在尝试通过一些教程代码来工作,并添加一个OnItemClick侦听器,但是当它击中侦听器并导致我的应用崩溃时,总是引发异常。这是我在Android环境中进行的首次尝试,因此我正在尝试学习所有这些东西之间的相互关系。 这是我尝试过的: 我也尝试将setListAdapter更改为lv.setListAdapter,但这似乎不是有效的声明。 我想念什么? 问题答案: ListActiv

    • 我正在活动页面中使用。因为应用程序栏下面有。但当我使用而不是时,它就不起作用了。如果我将放在内部,则不会展开