欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android實(shí)現(xiàn)兩個(gè)ScrollView互相聯(lián)動(dòng)的同步滾動(dòng)效果代碼

 更新時(shí)間:2015年10月23日 12:04:35   作者:非著名程序員  
這篇文章主要介紹了Android實(shí)現(xiàn)兩個(gè)ScrollView互相聯(lián)動(dòng)的同步滾動(dòng)效果代碼,涉及Android操作ScrollView實(shí)現(xiàn)聯(lián)動(dòng)功能的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了Android實(shí)現(xiàn)兩個(gè)ScrollView互相聯(lián)動(dòng)的同步滾動(dòng)效果代碼。分享給大家供大家參考,具體如下:

最近在做一個(gè)項(xiàng)目,用到了兩個(gè)ScrollView互相聯(lián)動(dòng)的效果,簡單來說聯(lián)動(dòng)效果意思就是滑動(dòng)其中的一個(gè)ScrollView另一個(gè)ScrollView也一同跟著滑動(dòng),要做到一起同步滑動(dòng)。感覺在以后的項(xiàng)目開發(fā)中大家可能也會(huì)用到,絕對(duì)做個(gè)Demo分享出來,供大家一起學(xué)習(xí),以便大家以后好用,覺的不錯(cuò),有用的可以先收藏起來哦!

其實(shí)對(duì)于ScrollView,Android官方并沒有提供相關(guān)的獲得或者設(shè)置滑動(dòng)距離的方法,也沒有提供相應(yīng)的監(jiān)聽方法。但是那要怎么來做呢?不用擔(dān)心,肯定能做到。既然沒有提供監(jiān)聽方法,但是通過查看Android源碼可知,提供了一個(gè)有關(guān)x,y距離的方法,如下:

復(fù)制代碼 代碼如下:
protected void onScrollChanged(int x, int y, int oldx, int oldy)

但是呢,該方法是受保護(hù)的方法,不能夠直接調(diào)用,所以我們得重寫ScrollView,寫個(gè)接口進(jìn)行監(jiān)聽回調(diào)。

效果圖:

具體實(shí)現(xiàn)方法如下:

1. 重寫ScrollView

package net.loonggg.scrollviewdemo;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ScrollView;
public class ObservableScrollView extends ScrollView {
private ScrollViewListener scrollViewListener = null;
public ObservableScrollView(Context context) {
super(context);
}
public ObservableScrollView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}
public ObservableScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void setOnScrollViewListener(ScrollViewListener scrollViewListener) {
this.scrollViewListener = scrollViewListener;
}
@Override
protected void onScrollChanged(int x, int y, int oldx, int oldy) {
super.onScrollChanged(x, y, oldx, oldy);
if (scrollViewListener != null) {
scrollViewListener.onScrollChanged(this, x, y, oldx, oldy);
}
}
}

通過上邊代碼,我們可以看到上面自己寫了一個(gè)設(shè)置監(jiān)聽的方法,如下:

public void setOnScrollViewListener(ScrollViewListener scrollViewListener) {
this.scrollViewListener = scrollViewListener;
}

那么就看第二步吧,定義一個(gè)監(jiān)聽接口。

2. 定義監(jiān)聽接口

package net.loonggg.scrollviewdemo;
public interface ScrollViewListener {
void onScrollChanged(ObservableScrollView scrollView, int x, int y,
int oldx, int oldy);
}

3. 布局文件引用重寫的ObservableScrollView

具體內(nèi)容不寫了,舉個(gè)引用例子即可,如下:

<net.loonggg.scrollviewdemo.ObservableScrollView
android:id="@+id/sv1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:background="#36b797" >
//里面放包裹內(nèi)容
</net.loonggg.scrollviewdemo.ObservableScrollView>

4. Activity中調(diào)用

package net.loonggg.scrollviewdemo;
import android.os.Bundle;
import android.view.Window;
import android.app.Activity;
public class MainActivity extends Activity implements ScrollViewListener {
private ObservableScrollView sv1, sv2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
sv1 = (ObservableScrollView) findViewById(R.id.sv1);
sv2 = (ObservableScrollView) findViewById(R.id.sv2);
sv1.setOnScrollViewListener(this);
sv2.setOnScrollViewListener(this);
}
@Override
public void onScrollChanged(ObservableScrollView scrollView, int x, int y,
int oldx, int oldy) {
if (scrollView == sv1) {
sv2.scrollTo(x, y);
} else if (scrollView == sv2) {
sv1.scrollTo(x, y);
}
}
}

到這里就講完了,應(yīng)該說的比較明白了吧。

希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Android studio 如何刪除項(xiàng)目 module

    Android studio 如何刪除項(xiàng)目 module

    本篇文章主要介紹了Android studio 如何刪除項(xiàng)目module的相關(guān)知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-05-05
  • Android編程之手機(jī)壁紙WallPaper設(shè)置方法示例

    Android編程之手機(jī)壁紙WallPaper設(shè)置方法示例

    這篇文章主要介紹了Android編程之手機(jī)壁紙WallPaper設(shè)置方法,結(jié)合實(shí)例形式分析了Android手機(jī)壁紙WallPaper的相關(guān)設(shè)置與使用技巧,需要的朋友可以參考下
    2017-08-08
  • Android入門教程之Picasso框架

    Android入門教程之Picasso框架

    本文會(huì)先介紹Picasso的基本使用方法,讓您快速上手Picasso。后面我們分享實(shí)現(xiàn)ListView顯示網(wǎng)絡(luò)圖片的實(shí)例,從源碼角度詳細(xì)分析它的實(shí)現(xiàn),有需要的可以參考借鑒。
    2016-08-08
  • 使用Chrome瀏覽器調(diào)試Android App詳解

    使用Chrome瀏覽器調(diào)試Android App詳解

    這篇文章主要介紹了使用Chrome瀏覽器調(diào)試Android App詳解,本網(wǎng)講解了使用Facebook開源Stetho實(shí)現(xiàn)在Chrome中調(diào)試Android App中,需要的朋友可以參考下
    2015-05-05
  • 深入理解Android 5.0中的Toolbar

    深入理解Android 5.0中的Toolbar

    相信大家都有所體會(huì),搜索Toolbar相關(guān)文章滿天飛,但是大都不是很全面,每次要用到的時(shí)候又要重頭過濾一遍。而且隨著版本升級(jí)很多較早的文章的方法已經(jīng)失效,最近剛好好用到Toolbar,就將相關(guān)配置整理下,方便以后需要的時(shí)候或者有需要的朋友們參考學(xué)習(xí)。
    2017-01-01
  • Android控件之SeekBar的用法總結(jié)

    Android控件之SeekBar的用法總結(jié)

    SeekBar是進(jìn)度條。本篇文章介紹了Android控件之SeekBar的使用,SeekBar的應(yīng)用非常廣,比如用來顯示音量條、播放進(jìn)度條,有水平顯示也有垂直顯示,有興趣的可以了解一下。
    2017-01-01
  • Android編程實(shí)現(xiàn)QQ表情的發(fā)送和接收完整實(shí)例(附源碼)

    Android編程實(shí)現(xiàn)QQ表情的發(fā)送和接收完整實(shí)例(附源碼)

    這篇文章主要介紹了Android編程實(shí)現(xiàn)QQ表情的發(fā)送和接收的方法,涉及Android圖片資源、正則表達(dá)式及對(duì)話框的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • android studio3.3.1代碼提示忽略大小寫的設(shè)置

    android studio3.3.1代碼提示忽略大小寫的設(shè)置

    這篇文章主要介紹了android studio3.3.1代碼提示忽略大小寫的設(shè)置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Android如何設(shè)置圓角圖片

    Android如何設(shè)置圓角圖片

    這篇文章主要為大家詳細(xì)介紹了Android如何設(shè)置圓角圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • 基于TransactionTooLargeException異常分析

    基于TransactionTooLargeException異常分析

    下面小編就為大家分享一篇基于TransactionTooLargeException異常分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11

最新評(píng)論