`

android listview判断上滑还是下滑

 
阅读更多

android  中listview是比较常见一种控件,各路大牛折腾listview,上拉更过,下拉刷新等动画效果,但是在最近的APP开发中只需要知道listview是上滑还是下滑。

实现该功能需要用到listview的setOnScrollListener这个监听器。

private boolean scrollFlag = false;// 标记是否滑动

private int lastVisibleItemPosition;// 标记上次滑动位置

@Override

public void onScrollStateChanged(AbsListView view, int scrollState) {

// TODO Auto-generated method stub

if (scrollState == OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {

scrollFlag = true;

} else {

scrollFlag = false;

}

}

 

@Override

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

Log.d("dc", "firstVisibleItem::" + firstVisibleItem + ":visibleItemCount:" + visibleItemCount + ":totalItemCount:" + totalItemCount);

if (scrollFlag) {

if (firstVisibleItem > lastVisibleItemPosition) {

Log.d("dc", "上滑");

}

if (firstVisibleItem < lastVisibleItemPosition) {

Log.d("dc", "下滑");

}

if (firstVisibleItem == lastVisibleItemPosition) {

return;

}

lastVisibleItemPosition = firstVisibleItem;

}

}

这是我的方法,如果有更好的方法欢迎提醒!

分享到:
评论
2 楼 TanHuisky 2015-08-25  
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)
{
View topChild = view.getChildAt(0);
                int newScrollPosition = 0;
                if (topChild == null)
                {
                    newScrollPosition = 0;
                }
                else
                {
                    newScrollPosition = -topChild.getTop() + view.getFirstVisiblePosition() * topChild.getHeight();
                }

                if (newScrollPosition < mScrollPosition)
                {
                   
                    Log.d("dc", "下滑");
                }
                else
                {
    
                    Log.d("dc", "上滑");
                }
mScrollPosition = newScrollPosition;
}
1 楼 benben_002 2015-04-13  
如果数据刚好就是一个屏幕里的,好像判断不了吧

相关推荐

    listview上滑下滑显示和隐藏

    标题 "listview上滑下滑显示和隐藏" 涉及的是Android开发中的一个常见交互设计,通常用于优化用户界面(UI)和用户体验(UX)。在Android应用开发中,ListView是一种常用的视图组件,用于显示一系列可滚动的项目列表...

    android 按钮根据listview上下滑动显示或隐藏

    在Android开发中,ListView是一种常用的组件,用于展示大量的列表数据。在这个特定的场景中,我们需要实现一个功能:当用户在ListView上下滑动时,按钮会根据ListView的状态动态地显示或隐藏,并带有平滑的动画效果...

    listview 上滑隐藏标题栏,下滑显示标题栏

    在`onScroll`方法中,我们可以通过比较`firstVisibleItem`(当前可见的第一个item的位置)在滚动前后的变化来判断用户是上滑还是下滑。如果`firstVisibleItem`变大,说明用户正在上滑,反之则表示下滑。根据这个判断...

    listview列表视频播放,支持全屏,上滑暂停播放等

    在这个项目中,"listview列表视频播放,支持全屏,上滑暂停播放等",我们将深入探讨这些关键知识点。 1. **视频播放组件选择**:通常,Android开发者会选择如`VideoView`或`ExoPlayer`作为视频播放的核心组件。`...

    ScrollView嵌套ListView滑动冲突的解决方法

    在ListView的`onTouchEvent`中,如果检测到上滑或下滑,且ListView已经滑动到底部或顶部,返回false,将事件交给父视图(ScrollView)处理。 3. **使用NestedScrollView替换ScrollView** 自Android Design Support...

    实现侧滑上下滑自定义ViewGroup

    通过比较手指按下和抬起位置的Y坐标差,我们可以识别出上滑和下滑的动作。然后,结合滑动动画,可以创建一个可滚动的区域,实现上下拉的效果。对于下拉刷新,可以添加一个头部View,当上滑时显示刷新指示器;对于上...

    Android ListView反弹效果源码.zip

    此外,源码可能还涉及对滚动速度的计算,以及对不同方向(上滑、下滑)反弹效果的处理。开发者可能还会使用 OverscrollHelper 或者 OverScrollByDelegate 类来辅助处理过度滚动情况,实现更自然的反弹效果。 总之,...

    android listview 背景伸缩回弹

    当手指上滑,背景高度增加;手指下滑,背景高度减小。同时,还需要判断是否达到回弹的临界点,以触发回弹动画。 4. **动画处理**:在松开手指后,可以使用`ObjectAnimator`或`ValueAnimator`来创建背景的回弹动画。...

    Android ListView反弹效果源码.rar

    需要注意的是,这个方法需要处理滚动方向(上滑/下滑)以及当前滚动位置是否在边界。 4. ** 动画处理**:Android提供了多种动画API,如`ValueAnimator`和`ObjectAnimator`,可以用来创建平滑的反弹动画。在反弹过程...

    【ListView】动态加载之滑动加载

    当用户上滑时执行刷新操作,下滑时执行加载更多操作。为此,开发者通常会使用SwipeRefreshLayout组件包裹ListView,实现这一效果。 5. **源代码案例分析** `ListViewLoading.zip`文件中的源代码示例可能包含了一个...

    listview的上滑下滑监听,上下滑监听隐藏顶部选项栏的实例

    为了提供更好的用户体验,开发者们经常需要对ListView的上滑下滑行为进行监听,以便在适当的时机进行一些特定的操作,比如隐藏或显示顶部选项栏。 要实现这一功能,我们需要关注两个核心点:首先是设置滑动监听器;...

    Android开发界面阻尼效果的实现

    本篇文章将详细介绍如何在Android开发中实现上滑、下滑和侧滑等各种阻尼效果。 首先,我们需要了解Android中的滑动事件处理机制。在Android中,我们通常通过重写ViewGroup的`onInterceptTouchEvent`和`onTouchEvent...

    android listView中item项的显示与隐藏动画实现

    例如,当item从隐藏状态变为显示状态时,我们可以启动上滑动画;反之,如果item从显示状态变为隐藏状态,我们可以启动下滑动画。 ```java @Override public View getView(int position, View convertView, ...

    android开发中ListView的妙用之:下拉刷新与到底部载入更多

    2. **监听ListView的滑动事件**:通过监听OnScrollListener的onScroll和onScrollStateChanged方法,判断当前ListView是否在顶部以及是否正在下拉。 3. **触发刷新逻辑**:当用户下拉动作达到一定阈值时,调用刷新...

    滑到底部自动加载的ListView

    在Android开发中,...综上所述,滑到底部自动加载的ListView是Android开发中的一个实用功能,涉及到滚动事件监听、网络请求、数据处理等多个环节。开发者需要熟练掌握这些技术,以提供流畅且功能丰富的用户体验。

    android的ListView点击item使item展开的做法

    当item展开或折叠时,可以通过设置TranslationY属性来实现平滑的上滑或下滑动画。 总结一下,实现“android的ListView点击item使item展开的做法”主要涉及以下几个步骤: 1. 自定义Adapter,包括重写`...

    自动隐藏和显示标题栏ListView

    在Android中,我们可以使用手势检测库,如GestureDetector或SwipeRefreshLayout,来监听用户的上滑和下滑动作。GestureDetector可以检测基本的手势,如单击、长按和滑动。对于上滑和下滑,我们需要自定义一个...

    仿淘宝商品页上下滑动控件

    我们需要监听滑动手势,当用户上滑或下滑时,改变FrameLayout的位置,实现视图的切换。此外,为了保证滑动的平滑性,可以使用Scroller或VelocityTracker来辅助计算滑动速度和动画效果。 与WebView、ScrollView、...

    Android高级应用源码-listview下拉刷新加载更多.rar

    在Android开发中,ListView是一种非常常见的控件,用于展示大量数据列表。本资源"Android高级应用源码-listview下拉刷新加载更多.rar"提供了一个关于ListView实现下拉刷新和加载更多的示例源码,这对于开发者来说是...

    上滑隐藏标题下拉显示

    在Android开发中,"上滑隐藏标题下拉显示"是一种常见的界面交互设计,它主要用于优化移动应用的用户体验,尤其是在屏幕空间有限的情况下。这种设计通常应用于ListView、RecyclerView等可滚动视图,通过手势控制标题...

Global site tag (gtag.js) - Google Analytics