android-在scrollview中显示视图时通知的方法?

android-在scrollview中显示视图时通知的方法?,第1张

概述我有一个简单的问题:假设我对scrollView(或horizo​​ntalScrollView)有一些看法.有什么方法可以添加一个侦听器,该侦听器会告诉我这种视图何时进入可见区域的内部和外部?我看到的唯一类似的问题是:Android:howtocheckifaViewinsideofScrollViewisvisible?但是我想知道

我有一个简单的问题:

假设我对scrollVIEw(或horizo​​ntalScrollVIEw)有一些看法.
有什么方法可以添加一个侦听器,该侦听器会告诉我这种视图何时进入可见区域的内部和外部?

我看到的唯一类似的问题是:
Android: how to check if a View inside of ScrollView is visible?
但是我想知道何时发生这样的事件(变得隐藏/可见).

解决方法:

子类化您正在使用的视图类(我对ImageVIEw这样做是因为我只是将那些添加到了滚动视图中):

public class PeekImageVIEw extends ImageVIEw implements VIEwTreeObserver.OnScrollChangedListener {    private static final String LOG_TAG = "PeekImageVIEw";    private InVIEwportListener inVIEwportListener;    private boolean isInVIEwport = false;    public PeekImageVIEw(Context context) {        super(context);    }    public PeekImageVIEw(Context context, AttributeSet attrs) {        super(context, attrs);    }    public PeekImageVIEw(Context context, AttributeSet attrs, int defStyle) {        super(context, attrs, defStyle);    }    public interface InVIEwportListener {        voID onVIEwportEnter(PeekImageVIEw vIEw);        voID onVIEwportExit(PeekImageVIEw vIEw);    }    public voID setInVIEwportListener(InVIEwportListener Listener) {        this.inVIEwportListener = Listener;    }    @OverrIDe    protected voID onAttachedToWindow() {        super.onAttachedToWindow();        VIEwTreeObserver vto = getVIEwTreeObserver();        if (vto != null) {            vto.addOnScrollChangedListener(this);        }    }    @OverrIDe    protected voID onDetachedFromWindow() {        super.onDetachedFromWindow();        VIEwTreeObserver vto = getVIEwTreeObserver();        if (vto != null) {            vto.removeOnScrollChangedListener(this);        }    }    @OverrIDe    public voID onScrollChanged() {        Rect bounds = new Rect();        boolean inVIEwport = getLocalVisibleRect(bounds);        Log.d(LOG_TAG, "is in vIEw " + bounds + " : " + inVIEwport + " ; " + bounds);        if (inVIEwportListener != null && isInVIEwport != inVIEwport) {            if (inVIEwport) {                inVIEwportListener.onVIEwportEnter(this);            } else {                inVIEwportListener.onVIEwportExit(this);            }        }        isInVIEwport = inVIEwport;    }}

在视图进入或离开窗口的可见部分(视口)时,将InVIEwportListener附加到此PeekImageVIEw的实例将使您得到通知.

总结

以上是内存溢出为你收集整理的android-在scrollview中显示视图时通知的方法?全部内容,希望文章能够帮你解决android-在scrollview中显示视图时通知的方法?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1084721.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存