ScrollerCompat的简单用法。
来源:互联网 发布:linux c语言ide 编辑:程序博客网 时间:2024/05/22 07:42
这个是v4的组件,用法和Scroller用法差不多。第一步是调用Create方法构造对象。第二步是在computeScroll里面实现重新布局。第三步是startScroll函数。
注意要调用postInvalidate()进行重画。
测试代码如下。
package io.github.nianhua110.scrollertest;import android.content.Context;import android.support.v4.widget.ScrollerCompat;import android.util.AttributeSet;import android.util.Log;import android.widget.Button;import android.widget.LinearLayout;/** * Created by kankan on 2016/5/15. */public class TestScrollerClass extends LinearLayout { ScrollerCompat scrollerCompat; Button button; public TestScrollerClass(Context context) { super(context); init(context); } public TestScrollerClass(Context context, AttributeSet attrs) { super(context, attrs); init(context); } void init(Context context){ button = new Button(context); button.setText("cd"); addView(button); //第一步,创造对象 scrollerCompat = ScrollerCompat.create(context); //scrollerCompat.startScroll(0,0, 10,10, 1000); //postInvalidate(); } public void startScroller(){ Log.d("sd", "start scroller"); //第三步,启动滑动 scrollerCompat.startScroll(0, 100, 500, 8, 1000); postInvalidate(); } @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); button.layout(button.getLeft(), button.getTop(), button.getRight(), button.getBottom()); Log.i("sd", "number is "+ button.getLeft()); } @Override public void computeScroll() { super.computeScroll(); //第二步,响应computerScroll函数,一定要在计算完位置后调用,通过computeScrollOffset函数的返回值判断 if(scrollerCompat.computeScrollOffset()) { Log.i("sd", "computeScroll" + scrollerCompat.getCurrX()); button.layout(scrollerCompat.getCurrX(), button.getTop(), scrollerCompat.getCurrX() + button.getMeasuredWidth(), button.getBottom()); postInvalidate(); } } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); Log.i("sd", "on Measure"); }}完整代码可以下载点击下载,记得Star
1 0
- ScrollerCompat的简单用法。
- ScrollerCompat的使用
- ScrollerCompat 使用 注意事项
- vi的简单用法
- fstream的简单用法
- namespace的简单用法
- qmake的简单用法
- AJAX的简单用法
- apt的简单用法
- JScrollPane的简单用法!
- iframe的简单用法
- UpdaeProgress的简单用法
- ScriptManager的简单用法
- CxImage的简单用法
- JScrollPane的简单用法!
- #import 的简单用法.
- string的简单用法
- ExternalInterface的简单用法
- Java概述及开发环境搭建
- java 生成二维码 代码实现
- dispatch_sync死锁问题研究
- 第一张 对象导论
- 创建的安装项目控制台出现:AndroidManifest.xml file missing!
- ScrollerCompat的简单用法。
- 想成为更优秀的程序员?这8个方法帮你忙
- Opencv_remap
- 使用JavaSocket编写发送HTTP_POST请求的工具类
- 样式表三种使用方式和盒子模型
- leetcode 169
- 数组切片
- KinectFusion 解析
- 储存每一个单词W以及W的所有前缀,特定方的方向执行一次扫描的时候,如果被查找的单词作为前缀不在散列表中,那么在这个方向上可以及早终止