【问题标题】:How to display fully visible Items in top of the Listview after scrolling?滚动后如何在 Listview 顶部显示完全可见的项目?
【发布时间】:2014-12-12 19:39:36
【问题描述】:

如何在listview 中继续前进。我有 listitem 由 30 个项目组成,仅显示 images

在可见屏幕中,我们可以看到每个屏幕至少 1 1/2 个图像(即,一个完整图像和第二个图像的一半)。当我滚动 listview 时,很多时候它发生在顶部项目listview 部分可见(即,只能看到一半)。所以我想在listview 中限制它...滚动后我希望只在Listview 顶部显示完全可见的项目,避免在listview 顶部显示部分可见的项目。

谁能帮帮我。请提出解决此问题的任何想法。

【问题讨论】:

  • 使用 2 个 ImageView 的列表,您可以将图像放在一个 imageview 中,下一个视图让它为空白,背景为白色,这样您就可以获得所需的结果。使用自定义适配器
  • 我怀疑这会以某种方式增强用户体验。用户已经熟悉列表视图滚动的工作原理。
  • 如果图像覆盖大约 66% 的屏幕,我会考虑另一种类型的视图来滚动图像,例如 ViewPager。有许多库具有在列表、网格等中显示图像的各种实现
  • 根据我的问题,如果我能在列表视图的底部看到一半的图像没有问题,只限制在列表视图的顶部以增强用户体验,但是这个不可能发生你 hva 告诉像两个 imageview 和所有的事情......@therealprashant
  • 现在我可以在列表视图顶部获得第一个可见的项目索引,之后基于项目的索引....如何继续前进或告诉我这不适合根据这样的索引为我工作...回复这个...@ biegleux

标签: android listview android-listview visibility


【解决方案1】:
mListView.setOnScrollListener(new OnScrollListener() {
    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
        if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
            mListView.smoothScrollToPosition(mListView.getFirstVisiblePosition());
        }
    }
    @Override
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
    }
});

【讨论】:

  • 我也和你一样……喜欢
  • 这行得通,尽管有时mListView.getFirstVisiblePosition() 给了我错误的位置。我最终使用一个整数来跟踪我想要滚动到的位置
【解决方案2】:

最后我基于 setSelection() 方法得到了它。

mainListView.setOnScrollListener(new OnScrollListener() {
        //int currentTopVisible;
        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            int index=mainListView.getFirstVisiblePosition();
            mainListView.setSelection(index);

} }

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

        }
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-26
    • 2021-02-23
    • 2023-03-31
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    相关资源
    最近更新 更多