getListView().setOnScrollListener(onScrollListener);
AbsListView.OnScrollListener onScrollListener = new AbsListView.OnScrollListener() {
boolean flag = false;
@Override
public void onScrollStateChanged(AbsListView absListView, int scrollState) {
if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) { //触屏滑动中
if (flag) {
LinearLayout linearLayout = (LinearLayout) Checkin_context.findViewById(R.id.loadcheckin);
if (linearLayout.getVisibility() == View.GONE && linearLayout != null) {
linearLayout.setVisibility(View.VISIBLE);
}
getData(false);
}
}
}
@Override
public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
Log.v(TAG,firstVisibleItem+","+visibleItemCount+","+totalItemCount+"|"+getListView().getFirstVisiblePosition()+","+getListView().getLastVisiblePosition());
if (firstVisibleItem + visibleItemCount == totalItemCount && !flag) {
flag = true;
} else
flag = false;
}
};
因为我是直接extends ListActivity,在ListActivity中本身自带了一个Listview,所以可以直接getlistview
唯一要讲的就是在 OnScroll中firstVisibleItem + visibleItemCount == totalItemCount
firstVisibleItem :表示在屏幕中第一条显示的数据在adapter中的位置,visibleItemCount 则是屏幕中最后一条数据在adapter中的数据,totalItemCount则是adapter中的总条数!
adapter(适配器)我们把其看做是一个list集合,可以在其中add很多的数据!而在屏幕中显示的数据,
只是这个集合中的一部分!firstVisibleItem +visibleItemCount = 这个集合总条数(list.size())
以此判断动态加载数据!
分享到:
相关推荐
下面我们将详细探讨如何在Android中自定义ScrollView并添加滑动监听事件。 首先,我们要了解ScrollView的基本结构。ScrollView继承自FrameLayout,它可以包含一个直接子视图,并确保这个子视图完全可见,如果内容太...
// 手指触摸屏幕滑动 } else if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) { // 滑动停止 } else if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_FLING) { // 快速...
你可以设置其宽度、高度、背景、动画等属性,以及决定是否允许窗口跟随触摸事件移动。创建`PopupWindow`时,需要传入一个视图,这个视图就是显示在窗口中的内容。 接着,我们需要创建一个`ListView`。`ListView`是...
在这个子类中,我们需要覆写`onTouchEvent()`方法,以便在用户触摸屏幕时捕获滑动事件。同时,我们还需要创建一个`Handler`对象来处理滚动过程中的延迟消息,因为在用户松开手指后,ScrollView可能会继续滚动一段...
- 确保`SwipeRefreshLayout`的子视图可以正确响应触摸事件,防止与`DockingExpandableListView`的滑动手势冲突。 - 考虑到性能问题,合理使用`notifyDataSetChanged()`等方法更新数据,避免不必要的视图重绘。 - ...
// 用户触摸屏幕滑动时的逻辑 } else if (scrollState == SCROLL_STATE_FLING) { // 用户松手后,列表还在惯性滑动时的逻辑 } } @Override public void onScroll(AbsListView view, int firstVisibleItem, ...
// 正在触摸滑动的处理 break; } } @Override public void onScrolled(NumberPicker view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { // 这个方法在API 23及以上可用,用于获取...
在Android开发中,我们经常需要实现各种拖动效果,比如抽屉滑动、滑动菜单等。这时,`ViewDragHelper`就派上了用场。`ViewDragHelper`是Android SDK提供的一种工具类,用于帮助开发者轻松实现视图的拖放操作。本篇...
这段代码中,`onScrollStateChanged`方法检测到用户开始触摸滑动时,根据ListView的第一个可见条目的位置决定是否启动隐藏动画。当用户向上滑动且第一个条目不再可见时,启动隐藏动画;反之,如果用户向上滑动回到...
6. **使用`android:focusableInTouchMode="true"`**:在EditText的布局中,设置`android:focusableInTouchMode="true"`,使得EditText在触摸模式下也能获取焦点。 ```xml android:layout_width="match_parent" ...
在Android开发中,有时我们需要创建一种特殊的列表视图,它能提供悬停效果,即当用户滚动列表时,某个特定的头部视图会保持在屏幕顶部,直到被新的头部视图替换。`StickListView`正是这样一种实现方式,它允许我们在...
3. SCROLL_TOUCH_SCROLL:触摸滚动状态,用户正在触摸屏幕并滑动列表。 `onScroll()`方法则在滚动过程中被调用,其中`firstVisibleItem`表示第一个可见条目的位置,`visibleItemCount`是当前屏幕上可见的条目数量,...
在Android开发中,有时我们需要实现一个可以横向滑动的列表视图,这在传统的ListView组件中并不能直接实现。为了满足这种需求,开发者通常会利用第三方库来实现这一功能。这里我们关注的是开源库`hlistview`,由it....