当前位置:首页 » 安卓系统 » android下拉scrollview

android下拉scrollview

发布时间: 2023-02-04 22:46:29

❶ android scrollview如何判断是上拉还是下拉

/**
* 可以监听ScrollView的上下滑动 ,实现ScrollListener接口,调用setScrollListener(ScrollListener l)方法。
* SCROLL_UP :ScrollView正在向上滑动
* SCROLL_DOWN :ScrollView正在向下滑动
* @author yxw
*/
public class ObservableScrollView extends ScrollView {

private ScrollListener mListener;

public static interface ScrollListener {
public void scrollOritention(int oritention);
}

/**
* ScrollView正在向上滑动
*/
public static final int SCROLL_UP = 0x01;

/**
* ScrollView正在向下滑动
*/
public static final int SCROLL_DOWN = 0x10;

/**
* 最小的滑动距离
*/
private static final int SCROLLLIMIT = 40;

public ObservableScrollView(Context context) {
super(context, null);
}

public ObservableScrollView(Context context, AttributeSet attrs) {
super(context, attrs, 0);
}

public ObservableScrollView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}

@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);

if (oldt > t && oldt - t > SCROLLLIMIT) {// 向下
if (mListener != null)
mListener.scrollOritention(SCROLL_DOWN);
} else if (oldt < t && t - oldt > SCROLLLIMIT) {// 向上
if (mListener != null)
mListener.scrollOritention(SCROLL_UP);
}
}

public void setScrollListener(ScrollListener l) {
this.mListener = l;
}
}

❷ android pulltorefresh scrollview下拉刷新上拉加载怎么区分

listView.setMode(PullToRefreshBase.Mode.BOTH);
listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
page = 1;
loadData();
}

@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
page++;
loadData();
}
});

首先要上下拉刷新功能先要设置刷新模式 为BOTH,
然后在设置监听事件,里面有重写的两个方法,一个是下拉的 一个是上啦的,
可以在里面写对应的 事件,比如 你上啦要干些啥,就在onPullUpToRefresh中写即可
手动打字比较类 ,凑合着看吧

❸ 安卓开发怎么设置scrollview的下拉刷新

可以实现的,不过scrollview嵌套listview的时候会导致listview只显示一个条目,你可以计算listview子item的高度,然后加起来设定listview高度,但是这样的listview失去了高性能,如果一定要使用scrollview和listivew嵌套,不如就把scrollview中listview上面的东西做成listview的header,下面的做成footer,这样就不用scrollview了。
另,谷歌的support
v4包更新了,出了一个layout叫SwipeRefreshLayout,是单独的一个下拉刷新layout,你可以更新后使用它,这个下拉控件可以应用到任何控件上,比如listview,gridview,webview,等等。

❹ android开发scrollview怎么判断是上滑还是下滑

你在左右滑动时,如果手指不是完全水平,稍微倾斜的话,y方向移动达到一定像素就会触发(这个值可以用ViewConfigration类取得,通常是8像素)scrollView的onInterceptTouchEvent,它返回true,于是你的左右滑动停止,开始了scroll的上下滚动。

❺ 【Android】打造下拉放大效果

在其他App上看到了这样的一个效果,感觉有点意思,于是决定实现一个类似的效果。
( 其实是iOS的同学在实现功能的时候随意发挥了一下 )
效果大概值这样子的:

UI看完后
“这个效果不错啊”
“要不你们Android也么做?” 于是~~
作为一个有追求的程序员,决定也要实现一个这样的效果 (满脑子都是草泥马在奔腾)

这样的效果嘛~~
利用自定义的 ViewGroup ,通过对手势的处理,应该就能实现了吧?

主要应该分两部分:

比较麻烦的应该是在第一部分,需要对事件的分发有一些理解。

说到手势的判断,难免需要对事件分发进行处理。

下拉部分
1、在 onInterceptTouchEvent 中对事件进行处理,如果为下拉事件,则将该事件拦截,交给 onTouchEvent 处理;
2、在 onTouchEvent 中通过计算得到下拉的距离,然后动态改变 Header 的配置,实现放大的效果。

重置部分
在 onTouchEvent 的 ACTION_UP 中重置 Header ,实现回弹

知道思路以后,实现起来就比较简单了

创建一个 ViewGroup (这么命名为 FlexibleLayout )继承 LinearLayout

onInterceptTouchEvent的处理

先通过两个条件判断是否为下拉事件:

然后通过 mIsBeingDragged 来标记开始拖拽

onTouchEvent的处理

修改头部大小

得到下拉的距离后,就可以来改变 Header 的大小,实现放大效果了。

放大、重置的部分大家可以自由发挥

这里利用 Math.pow(offsetY, 0.8) 得到实际需要增加的高度,通过计算得到对应的宽度以及偏移(类似阻尼效果)。

重置头部

直接将宽高以及偏移设置成原来的参数即可。
(如果觉得这样重置过程不够丝滑,可以通过动画来完成一个流畅的重置效果,这里就不演示了)

到这里,一个简易拉下放大的效果就做完了。试试效果

使用

直接在需要下拉放大的布局外面套上 FlexibleLayout 即可,例如 ScrollView

效果

ScrollVIew:

RecyclerView:

CoordinatorLayout:

大功告成!!!
当然里面还有一些细节的处理,比如下拉的条件、回弹的动画、最大高度等,具体内容的可以在 源码 中看到。

完成下拉放大后,貌似把一个很重要的功能遗忘了下拉刷新 ??
光顾这下拉放大,刷新怎么办?【黑人问号】

这个功能留着下周实现吧,我的7小时睡眠已遥遥无期~~

虽然没有直接实现下拉刷新的功能,不过源码中已经暴露了一个下拉的监听,你也可以通过这个监听实现下拉刷新的操作

到这里就结束了

(来还上周欠下的债~~)

和下拉放大类似,通过希手指下滑的监听,利用 View translationY rotation 实现移动和旋转。
具体的实现过程这里就不贴出来了,直接看效果吧

有兴趣的可以直接去 Github 上看源码以及用法。

Github

PullZoomView
Android事件分发机制 详解攻略,您值得拥有

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:333
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:374
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:610
java用什么软件写 发布:2025-05-18 03:56:19 浏览:31
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:940
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:738
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:802
网卡访问 发布:2025-05-18 03:35:04 浏览:510
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:371