scrollview积累的一点小小技巧,记录起来
来源:互联网 发布:跨表空间导入数据 编辑:程序博客网 时间:2024/05/16 14:37
慢慢记录,关于scrollview的就丢到这吧!
1.scrollview老是跳到底部,可以用此方法设置到顶部
txtBaseMsg.setFocusable(true);txtBaseMsg.setFocusableInTouchMode(true);txtBaseMsg.requestFocus();
txtBaseMsg是scrollview内最顶的一个控件,任何一个顶部子View都可以,主要是让他获得焦点,滚动到顶部
2.解决scrollview嵌套listview冲突,把listview设置成scrollview的样式,改写listview的onMeasure方法即可
@Overridepublic void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);super.onMeasure(widthMeasureSpec, expandSpec); }3.解决scrollview嵌套ViewPager时两个控件触摸的冲突:自定义Viewpager做为子控件,因为在ViewPager的onTouchEvent中我对onDown进行了操作,进行了操作后就无法将touch事件继续往下传给onClick和其内部控件的任何事件,所以自己做了判断,做了个singleTouch来实现点击的事件,此段代码为转载(
原文链接:http://www.eyeandroid.com/thread-17137-1-1.html)
view sourceprint?01public class ChildViewPager extends ViewPager{ /** 触摸时按下的点 **/ PointF downP = new PointF(); /** 触摸时当前的点 **/ PointF curP = new PointF(); OnSingleTouchListener onSingleTouchListener; public ChildViewPager(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } public ChildViewPager(Context context) { super(context); // TODO Auto-generated constructor stub } @Override public boolean onInterceptTouchEvent(MotionEvent arg0) { // TODO Auto-generated method stub //当拦截触摸事件到达此位置的时候,返回true, //说明将onTouch拦截在此控件,进而执行此控件的onTouchEvent return true; } @Override public boolean onTouchEvent(MotionEvent arg0) { // TODO Auto-generated method stub //每次进行onTouch事件都记录当前的按下的坐标 curP.x = arg0.getX(); curP.y = arg0.getY(); if(arg0.getAction() == MotionEvent.ACTION_DOWN){ //记录按下时候的坐标 //切记不可用 downP = curP ,这样在改变curP的时候,downP也会改变 downP.x = arg0.getX(); downP.y = arg0.getY(); //此句代码是为了通知他的父ViewPager现在进行的是本控件的操作,不要对我的操作进行干扰 getParent().requestDisallowInterceptTouchEvent(true); } if(arg0.getAction() == MotionEvent.ACTION_MOVE){ //此句代码是为了通知他的父ViewPager现在进行的是本控件的操作,不要对我的操作进行干扰 getParent().requestDisallowInterceptTouchEvent(true); } if(arg0.getAction() == MotionEvent.ACTION_UP){ //在up时判断是否按下和松手的坐标为一个点 //如果是一个点,将执行点击事件,这是我自己写的点击事件,而不是onclick if(downP.x==curP.x && downP.y==curP.y){ onSingleTouch(); return true; } } return super.onTouchEvent(arg0); } /** * 单击 */ public void onSingleTouch() { if (onSingleTouchListener!= null) { onSingleTouchListener.onSingleTouch(); } } /** * 创建点击事件接口 * @author wanpg * */ public interface OnSingleTouchListener { public void onSingleTouch(); } public void setOnSingleTouchListener(OnSingleTouchListener onSingleTouchListener) { this.onSingleTouchListener = onSingleTouchListener; } }
0 0
- scrollview积累的一点小小技巧,记录起来
- 一点小小积累
- 自己的一点小小心得记录
- 一点小小的感悟~~
- 21Century的小小积累
- 小小的记录一下
- MySQL的一点小小总结
- Quartz 一点小小的理解
- spring的一点小小理解
- java 一点小小的体会
- NSCache的一点小小认识
- 类的一点小小总结
- classloader的一点积累
- 一点平时的积累
- 面试的一点积累
- 个人经验的小小的积累
- 每天的主题就是小小的积累
- 让Symbian 的知识积累起来吧!
- Dynamics CRM2013 Lookup Filtering using addCustomFilter
- 就算再多好是极好的啊哈啥计划
- NGUI研究之Sprite精灵与精灵动画的使用
- 就算再多好是极好的啊哈啥计划
- Android自带ApiDemo里的动画分析-AnimationCloning
- scrollview积累的一点小小技巧,记录起来
- 关于解决从.x文件读取底面坐标来解决碰撞问题
- 安卓控件增加自定义点击效果
- B帧的直接模式
- H3C交换机忘记密码的解决办法
- android 常见词汇解释及API level与版本号之间的对应关系
- C++ 排序算法
- 经纬财富:昆明早上白银操作建议
- python中线程的使用