快捷搜索:

Android监听ScrollView滚动实现仿美团、大众点评的购

我之前写了一篇关于美团网,大年夜众点评的购买框效果的文章http://www.fengfly.com/plus/view-214540-1.html ,我自己感到效果并不是很好,假如快速滑动界面,显示悬浮框的时刻会呈现一卡的征象,有些同伙说无意偶尔候会呈现两个结构的环境,分外是对ScrollView滚动的Y值得监听,我还应用了Handler来获取,还有同伙给我先容了Scrolling Tricks这个器械,我下载试了下,确凿美团网,大年夜众点评的购买框用的是这种效果,然则Scrolling Tricks只能在API11以上应用,这个有点小悲剧,然后我做了下改动,并将实现思路分享给大年夜家,实现起来很简单

首先照样要先对ScrollView进行滚动监听,直接在onScrollChanged()措施中就能获取滚动的Y值,之前那篇文章应用了Handler,走弯路了,直接看代码吧

package com.example.meituandemo;

import android.content.Context;

import android.util.AttributeSet; import android.widget.ScrollView;

/奸淫

* @author xiaanming*

*/ public class MyScrollView extends ScrollView {

private OnScrollListener onScrollListener;

public MyScrollView(Context context) {this(context, null);

}

public MyScrollView(Context context, AttributeSet attrs) {this(context, attrs, 0);

}

public MyScrollView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);

}

/奸淫 设置滚动接口

* @param onScrollListener*/

public void setOnScrollListener(OnScrollListener onScrollListener) {this.onScrollListener = onScrollListener;

}

@Override

public int computeVerticalScrollRange() {return super.computeVerticalScrollRange();

}

@Override

protected void onScrollChanged(int l, int t, int oldl, int oldt) {super.onScrollChanged(l, t, oldl, oldt);

if(onScrollListener != null){onScrollListener.onScroll(t);

}}

/**

** 滚动的回调接口

** @author xiaanming

**/

public interface OnScrollListener{/**

* 回调措施, 返回MyScrollView滑动的Y偏向间隔* @param scrollY

*、*/

public void onScroll(int scrollY);}

}

接下来看看主界面的结构文件

LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/parent_layout"xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"android:layout_height="match_parent"

android:orientation="vertical" >

ImageViewandroid:id="@+id/imageView1"

android:layout_width="match_parent"android:layout_height="45dip"

android:scaleType="centerCrop"android:src="@drawable/navigation_bar" />

com.example.meituandemo.MyScrollView

android:id="@+id/scrollView"android:layout_width="fill_parent"

android:layout_height="fill_parent" >

FrameLayoutandroid:layout_width="match_parent"

android:layout_height="wrap_content" >

LinearLayoutandroid:layout_width="match_parent"

android:layout_height="wrap_content"android:orientation="vertical" >

ImageView

android:id="@+id/iamge"android:layout_width="match_parent"

android:layout_height="wrap_content"android:background="@drawable/pic"

android:scaleType="centerCrop" />

includeandroid:id="@+id/buy"

layout="@layout/buy_layout" />

ImageViewandroid:layout_width="match_parent"

android:layout_height="wrap_content"android:background="@drawable/one"

android:scaleType="centerCrop" />

ImageViewandroid:layout_width="match_parent"

android:layout_height="wrap_content"android:background="@drawable/one"

android:scaleType="centerCrop" />

ImageViewandroid:layout_width="match_parent"

android:layout_height="wrap_content"android:background="@drawable/one"

android:scaleType="centerCrop" />LinearLayout>

include

android:id="@+id/top_buy_layout"layout="@layout/buy_layout" />

FrameLayout>com.example.meituandemo.MyScrollView>

LinearLayout>

下面是结构的效果图

您可能还会对下面的文章感兴趣: