ScrollView自定义水平滑动事件
来源:互联网 发布:论文检测软件免费 编辑:程序博客网 时间:2024/05/15 18:06
自定义一个ScrollView
VerticalScrollView.java
package com.outsider.view;import android.annotation.SuppressLint;import android.content.Context;import android.util.AttributeSet;import android.view.MotionEvent;import android.widget.ScrollView;public class VerticalScrollView extends ScrollView { //定义自己的滑动监听器 private OnScrollViewScrollListener onScrollViewScrollListener; public VerticalScrollView(Context context) { super(context); } public VerticalScrollView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public VerticalScrollView(Context context, AttributeSet attrs) { super(context, attrs); } public OnScrollViewScrollListener getOnScrollViewScrollListener() { return onScrollViewScrollListener; } public void setOnScrollViewScrollListener(OnScrollViewScrollListener onScrollViewScrollListener) { this.onScrollViewScrollListener = onScrollViewScrollListener; } @SuppressLint("ClickableViewAccessibility") @Override public boolean onTouchEvent(MotionEvent ev) { //Log.i("mytrace", ev.getX() + " " + ev.getY()); //先处理自定义事务,再调用原生方法 if(this.onScrollViewScrollListener != null){ this.onScrollViewScrollListener.onScrollChanged(ev); } return super.onTouchEvent(ev); }}
OnScrollViewScrollListener.java
package com.outsider.view;import android.view.MotionEvent;public interface OnScrollViewScrollListener { void onScrollChanged(MotionEvent ev);}
实现OnScrollViewScrollListener此接口来自定义事件处理
VerticalScrollView scroll = (VerticalScrollView) findViewById(R.id.scrollView);scroll.setOnScrollViewScrollListener(new OnScrollViewScrollListener() {@Overridepublic void onScrollChanged(MotionEvent event) { Log.i("mytrace", "onscrollchange"); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: { prev.set((int) event.getX(), (int) event.getY()); break; } case MotionEvent.ACTION_UP: { scrollFlag = false; break; } case MotionEvent.ACTION_MOVE: { float moveX = prev.x - event.getX(); // 左滑 if (moveX > 150 && moveX < 5000) { if (!scrollFlag) { if (VacabularManager.getVacabulars().size() <= 0) { fire(); Toast.makeText(MainActivity.this, "请先导入词库文件", Toast.LENGTH_LONG).show(); } else { VacabularManager.getVacabulars().next(); show(); } scrollFlag = true; } } else if (moveX < -150 && moveX > -5000) {// 右滑 if (!scrollFlag) { if (VacabularManager.getVacabulars().size() <= 0) { fire(); Toast.makeText(MainActivity.this, "请先导入词库文件", Toast.LENGTH_LONG).show(); } else { VacabularManager.getVacabulars().pre(); show(); } scrollFlag = true; } } } }}});
layout.xml
<com.outsider.view.VerticalScrollView android:id="@+id/scrollView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:fadingEdge="vertical|horizontal" android:scrollbars="horizontal|vertical" ></com.outsider.view.VerticalScrollView>
0 0
- ScrollView自定义水平滑动事件
- ScrollView嵌套可以水平滚动的自定义控件时滑动事件冲突问题解决办法
- 自定义水平ScrollView
- 自定义scrollview滑动到底部的监听事件
- Android中自定义ScrollView的滑动监听事件
- Android中自定义ScrollView的滑动监听事件,并在滑动时渐变标题栏背景颜色
- 【ScrollView】Android ScrollView监听滑动事件
- 自定义ViewGroup实现水平滑动
- 自定义水平滑动的listview
- 自定义ViewGroup (支持margin,gravity以及水平,垂直排列,滑动和点击事件)
- 自定义ScrollView,实现ScrollView滑动监听并记录滑动位置。
- Android中自定义ListView,解决scrollview嵌套listview 滑动事件冲突
- 解决在scrollview上下滑动嵌套scrollview,viewpager水平滑动时的抖动问题
- 解决在scrollview上下滑动嵌套scrollview,viewpager水平滑动时问题
- 解决在scrollview上下滑动嵌套scrollview,viewpager水平滑动时的抖动问题
- listView水平滑动识别为单击事件
- 解决水平ListView在ScrollView中出现的滑动冲突
- ScrollView水平滑动条选中条目的居中显示
- UOJ 164 线段树历史最值
- 给body加上border属性后border为什么会变大(算上了margin)?
- Best Sequence poj1699(dfs)
- problem --CF 603K ----------Indivisibility
- 伺服电机与编码器
- ScrollView自定义水平滑动事件
- linux进程的状态
- 2017.1.16——寒假集训第四天
- CUDA查询和选取设备信息
- HDU 1228 A+B
- 套接字的使用
- RecyclerView的上拉加载更多+SwipeRefreshLayout效果
- 运用“孤独九剑”解决项目实际问题(二)
- Java中小数保留问题