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

滚动列表视图时折叠元素视图(Android)

危宜
2023-03-14

我试图实现某种排序工具栏-但没有工具栏(而不是工具栏,它将是一个下拉元素,它本质上是一个RelativeLayout,其正下方有LinearLayout(下拉列表中的扩展项目),一旦按下下拉菜单,它就会在整个布局上悬停。

我考虑过实现折叠工具栏并将下拉列表放入工具栏中,但这可能不是一个好主意,因为下拉列表不是像图像视图这样的静态组件。我还在我的应用程序中使用了ActionBar,因此迁移到工具栏很可能非常耗时,更不用说随之而来的所有技术问题了。

除此之外,我还想过在列表视图中检测一个移动/滚动方向,然后隐藏/显示下拉列表,但当我在列表视图中简单地握住手指时,它会非常混乱(它会很快从上到下切换,反之亦然,直到我抬起手指才会停止)。

共有2个答案

吉嘉珍
2023-03-14

ListView有一个默认的scrollListener。你可以用它来知道它是否在滚动。然后隐藏下拉列表!

        listView.setOnScrollListener(new AbsListView.OnScrollListener() {
                    @Override
                    public void onScrollStateChanged(AbsListView absListView, int i) {

    //detect stop. have a counter then view the dropDown

                    }

                    @Override
                    public void onScroll(AbsListView absListView, int i, int i1, int i2) {

    //Hide dropDown

@Override
        public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {

            if(mLastFirstVisibleItem<firstVisibleItem)
            {
                Log.i("SCROLLING DOWN","TRUE");
            }
            if(mLastFirstVisibleItem>firstVisibleItem)
            {
                Log.i("SCROLLING UP","TRUE");
            }
            mLastFirstVisibleItem=firstVisibleItem;

        }
                    }
                });
章远航
2023-03-14

我很好奇其他人的提议,因为我前段时间与之斗争过。最后,我在listview中检测到移动/滚动方向,然后隐藏/显示标题(如您所提到的)。我是这样做的(我没有错误):

listView.setOnScrollListener(OnScrollListener() {
        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {

            final int currentFirstVisibleItem = view.getFirstVisiblePosition();

            if (currentFirstVisibleItem > mLastFirstVisibleItem) header.setVisibility(View.GONE);
            else if (currentFirstVisibleItem < mLastFirstVisibleItem) header.setVisibility(View.VISIBLE);

            mLastFirstVisibleItem = currentFirstVisibleItem;
        }

        @Override
        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
        }
    });

我用动画显示/隐藏标题的结尾。

 类似资料:
  • 我有一个android布局,它有一个,里面有很多元素。在的底部有一个,然后由适配器填充。 我遇到的问题是,android将从中排除,因为已经具有可滚动的功能。我希望与内容一样长,并且主滚动视图是可滚动的。 我怎样才能达到这种行为呢? 下面是我的主要布局: 然后以编程方式将组件添加到具有ID:的linearlayour中。下面是加载到LinearLayout中的一个视图。就是这个给我卷轴带来麻烦的。

  • 我正在尝试用Selenium选择一个值。 你能帮我纠正一下情况吗?

  • 利用UIScrollView实现视差滚动效果。在demo中,滑动ScrollView,背景图和文字的滚动速度不一样。直接用ScrollView 的协议,对其子视图的坐标进行随机系数比例的位置移动修正,从而实现视差滚动效果。没有用其他的框架,代码简单。 作者说:原创Demo 转载请注明出处。 [Code4App.com]

  • 问题内容: 我有一个具有静态高度和样式的元素中的搜索结果列表。我只想加载搜索结果的前x个(例如20个),并在用户滚动到包含搜索结果的元素的底部时加载另一个x个结果。 谁能向我解释我将如何做?我找到了一些示例,但所有示例都使用了整个文档的滚动值,而不是单个。我正在使用jQuery,如果有关系的话。 问题答案: 对我来说,听起来像是您想在滚动条即将结束时检测滚动条的位置。 在jquery组上四处搜寻时

  • 我有一个当用户滚动时显示隐藏单元格的tableView。不确定为什么会出现这种情况。 在视图中DidLoad() 用户点击按钮后,表格将以可设置动画的方式展开。 在 func tableView(_ tableView: UITableView, cellForRowAt 索引路径: 索引路径) - 当我滚动时,所有单元格都被隐藏。我看到它们是在单元格中创建的,但是,它们不会出现在我的屏幕上。为什

  • 我正在尝试使用java和Eclipse学习Selenium。我试图找到网页中的一个元素。 我尝试使用这行代码单击一个html元素: 下图显示了页面的html结构: