gpt4 book ai didi

android - android 中过度滚动的视觉指示

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:54:00 29 4
gpt4 key购买 nike

我正在尝试添加一些视觉指示,即 ViewPager 中所需的滑动方向上没有更多页面。但是,我正在努力寻找放置相关代码的地方。

我已尝试使用以下代码扩展 ViewPager 类,但 Toast 未显示(ev.getOrientation() 始终返回 0)。我也对历史点进行了同样的尝试,但 ev.getHistorySize() 也返回 0。

我错过了什么?

类示例:

public class CustomViewPager extends ViewPager {

public CustomViewPager(Context context) {
super(context);
}

public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}

/**
* @see android.support.v4.view.ViewPager#onTouchEvent(android.view.MotionEvent)
*/
@Override
public boolean onTouchEvent(MotionEvent ev) {
boolean result = super.onTouchEvent(ev);

switch (ev.getAction() & MotionEventCompat.ACTION_MASK) {
case MotionEvent.ACTION_MOVE:
if (ev.getOrientation() > 0) {
Toast.makeText(getContext(), "left", 0).show();
}
}

return result;
}
}

最佳答案

如果您查看 v4 支持库,您会看到 ViewPager 使用了一个名为 EdgeEffectCompat 的类(这会在您到达 ICS+ 中的 View 寻呼机的开头或结尾时提供发光效果)如果您查看 compat 库中的实现,您会看到它有一个 if 语句来查看构建版本是否为 14+( ICS)或不。如果是,那么它最终(如果你跟踪足够长)使用正常的 EdgeEffect 结束。 ICS 中引入的类。否则它使用 BaseEdgeEffectImpl,它基本上什么也没有。

如果需要,您可以使用自己的 EdgeEffect 制作自己的自定义 ViewPager。你可以看看android源码看看他们是怎么实现EdgeEffect的here你几乎可以复制它(只要确保将 AOSP/res/drawable 目录中的 overscroll_edgeoverscroll_glow 可绘制对象复制到你自己的项目中,因为它们是 android 内部的)或者继续创建你自己的版本。

祝你好运。

(顺便说一句,这就是他们如何在 ICS 的启动器菜单中创建看起来很酷的边缘倾斜效果...因此您可以随心所欲地发挥创意;)

关于android - android 中过度滚动的视觉指示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10773565/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com