scrollTo和scrollBy的用法及區(qū)別

主要知識點(diǎn):scrollTo是絕對滾動(以view的內(nèi)容的中心為原點(diǎn),如果x為負(fù)值,則向右滾,y為負(fù)值向下滾),scrollBy是相對滾動,他們的相同點(diǎn)就是滾動的都是view中的內(nèi)容,而不是view本身,view本身的getX,getY方法得到的值是不會變的,注意現(xiàn)在版本中scrollTo和scrollBy中的值不允許是 負(fù)值,可以通過如下方法達(dá)到負(fù)值的效果,在dimens.xml文件中新建尺寸

<dimen name="fushu">-10px</dimen>

在java文件中這樣調(diào)用

button0.scrollBy(0, getResources().getDimensionPixelSize(R.dimen.fushu));

再來一張圖片,更好的理解x,y取值所對應(yīng)的滾動方向

代碼如下

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_alignParentBottom="true"
        android:id="@+id/lin"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
    <Button
        android:layout_weight="1"
        android:text="scrollTo(10,0)"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button"/>

    <Button
        android:layout_weight="1"
        android:text="scrollBy(10,0)"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button2"/>
        <Button
            android:layout_weight="1"
            android:text="scrollTo(0,10)"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button3"/>

        <Button
            android:layout_weight="1"
            android:text="scrollBy(0,10)"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button4"/>
        <Button
            android:layout_weight="1"
            android:text="scrollBy(0,-10)"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button5"/>
</LinearLayout>
    <Button
        android:layout_above="@id/lin"
        android:background="@color/colorAccent"
        android:text="button"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/button0"/>
</RelativeLayout>
public class CeShi extends BaseActivity {
    @BindView(R.id.button0)
    Button button0;
    @BindView(R.id.button)
    Button button;
    @BindView(R.id.button2)
    Button button1;
    @BindView(R.id.button3)
    Button button2;
    @BindView(R.id.button4)
    Button button3;
    @BindView(R.id.button5)
    Button button4;
    @Override
    public int getView() {
        return R.layout.ceshi;
    }

    @Override
    public void initData() {
        ButterKnife.bind(this);
    }
    @OnClick(value = R.id.button)
    public void danJia(){
        button0.scrollTo(10,0);
        Log.d("CeShi", button0.getX() + "," + button0.getY());//注意這里getX和getY獲取到的值永遠(yuǎn)都不會變,
        //因?yàn)閟crollTo和scrollBy移動的是view中內(nèi)容的位置,而不是view的位置
    }
    @OnClick(value = R.id.button2)
    public void danJia1(){
        button0.scrollBy(10,0);
    }
    @OnClick(value = R.id.button3)
    public void danJia2(){
        button0.scrollTo(0,10);
    }
    @OnClick(value = R.id.button4)
    public void danJia3(){
        button0.scrollBy(0,10);
    }
    @OnClick(value = R.id.button5)
    public void danJia4(){
        button0.scrollBy(0, getResources().getDimensionPixelSize(R.dimen.fushu));
    }
}

參考文章:
https://blog.csdn.net/wuchuang127/article/details/39472493

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 內(nèi)容是博主照著書敲出來的,博主碼字挺辛苦的,轉(zhuǎn)載請注明出處,后序內(nèi)容陸續(xù)會碼出。 當(dāng)了解了Android坐標(biāo)系和觸...
    Blankj閱讀 6,878評論 3 60
  • 什么是View View 是 Android 中所有控件的基類。 View的位置參數(shù) View 的位置由它的四個頂...
    acc8226閱讀 1,394評論 0 7
  • View的事件體系(2) 掌握滑動的方法是實(shí)現(xiàn)絢麗的自定義控件的基礎(chǔ)。通過三種方式可以實(shí)現(xiàn)View的滑動: 1 是...
    努力生活的西魚閱讀 587評論 0 0
  • Scroller Scroller是一個專門用于處理滾動效果的工具類,例如ViewPager,ListView等控...
    獅_子歌歌閱讀 716評論 0 1
  • 圖片發(fā)自簡書App 1 距烏魯木齊七十余公里,有一梧桐鎮(zhèn),是農(nóng)墾六師102團(tuán)的駐地。據(jù)出租車司機(jī)說,加上流動人口,...
    自在寬哥閱讀 922評論 0 2

友情鏈接更多精彩內(nèi)容