View滑动效果常用属性详解:scroll、translation、LayoutParams

本文详细介绍了View的滑动效果常用属性,包括scrollX/scrollY的ScrollTo方法,translationX/translationY的平移效果,以及LayoutParams的margin属性如何影响布局。通过实例展示了不同属性在滑动、定位和布局调整中的作用,帮助理解Android视图滑动机制。
摘要由CSDN通过智能技术生成

View滑动效果常用属性详解

在自定义View,以及属性动画中常用到以下属性:
scrollX/scrollY,translationX/translationY,x/y,LayoutParams


1.scrollX/scrollY

对于这两个属性,View中提供了很多公有方法对其进行设置:

1、setScrollX(int value)/setScrollY(int value);
    //对应的也有getScrollX()/getScrollY()方法
2、scrollTo(int x, int y);
3、scrollBy(int x, int y);

通过源代码我们发现以上方法最终调用的都是scrollTo(int x,int y)方法:

public void setScrollX(int value) {
    scrollTo(value, mScrollY);
}

public void setScrollY(int value) {
   scrollTo(mScrollX, value);
}

public void scrollBy(int x, int y) {
   scrollTo(mScrollX + x, mScrollY + y);
}

其中需要注意的是scrollBy与scrollTo的区别在于:scrollBy设置的是相对值,scrollTo设置的是绝对值

ScrollTo方法滑动的是View里面的内容

在这里我们创建一个类ScrollView继承自TextView并重载里面的onTouchEvent方法,为了便于观察在这里我们只处理x方向的滑动,同时将模拟器的布局边界打开。

public class ScrollView extends TextView {
   
    ...

    //用于保存上一次点击事件的x坐标
    private float lastX;
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                lastX = event.getX();
                break;
            case MotionEvent.ACTION_MOVE:
                float currX = event.getX();
                scrollBy((int) (lastX - currX), 0);
                lastX = currX;
                break;
        }
        return true;
    }
    ...
}

在布局文件中使用ScrollView类

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值