滚动视图android studio bouncable

Posted

技术标签:

【中文标题】滚动视图android studio bouncable【英文标题】:scroll view android studio bouncable 【发布时间】:2022-01-06 17:12:39 【问题描述】:

我实际上尝试了很多来制作滚动视图

弹跳

但我没有成功,并且通过互联网,所有事情都无法正常工作

我试过这些 `公共类 BounceScrollView 扩展 ScrollView 私有静态最终 int MAX_Y_OVERSCROLL_DISTANCE = 200;

private Context mContext;
private int mMaxYOverscrollDistance;

public BounceScrollView(Context context) 
    super(context);
    mContext = context;
    initBounceScrollView();


public BounceScrollView(Context context, AttributeSet attrs) 
    super(context, attrs);
    mContext = context;
    initBounceScrollView();


public BounceScrollView(Context context, AttributeSet attrs, int defStyle) 
    super(context, attrs, defStyle);
    mContext = context;
    initBounceScrollView();


private void initBounceScrollView() 
    //get the density of the screen and do some maths with it on the max overscroll distance
    //variable so that you get similar behaviors no matter what the screen size

    final DisplayMetrics metrics = mContext.getResources().getDisplayMetrics();
    final float density = metrics.density;

    mMaxYOverscrollDistance = (int)(density * MAX_Y_OVERSCROLL_DISTANCE);


@Override
protected boolean overScrollBy(int deltaX , int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) 
    //This is where the magic happens, we have replaced the incoming maxOverScrollY with our own custom variable mMaxYOverscrollDistance;
    return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX, mMaxYOverscrollDistance, isTouchEvent);

` 这是它工作的例子之一,但在某些时候滚动视图卡住了,并且出现了类似的问题,以及其他可用但不起作用的库,所以就像它可以使滚动视图可以弹跳或者没有希望?

【问题讨论】:

【参考方案1】:

如果您使用的是SingleChildScrollView,您可以尝试将BouncingScrollPhysics() 添加到您的小部件中。

  @override
  Widget build(BuildContext context) 
    return Scaffold(
      body: SafeArea(
        child: Container(
          alignment: Alignment.center,
          width: double.infinity,
          height: double.infinity,
          child: SingleChildScrollView(
            physics: BouncingScrollPhysics(), // add this line
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.center,
              children: [
                // your widget
              ],
            ),
          ),
        ),
      ),
    );
  

【讨论】:

兄弟谢谢你。但是如何在 android studio 中使用这些代码。它看起来像扑腾。或者我错了,如果我应该在哪里使用它 @alandsahand 附在这里供您参考,您可以学习如何在 android studio 上安装和使用它。 youtube.com/… 我查了一下,我会这样做谢谢你【参考方案2】:

只需在滚动小部件中使用physics: BouncingScrollPhysics()

【讨论】:

以上是关于滚动视图android studio bouncable的主要内容,如果未能解决你的问题,请参考以下文章

如何将 listView 放在 android studio 的滚动视图中?

在 Android Studio 中设计可滚动内容时要遵循的方法是啥?

Android studio自动horizo​​ntalscrollview无限滚动直到结束然后重复

ScrollView在android studio中不起作用,期望的输出没有出现

ANDROID STUDIO:如何修复我的 ScrollView?

Android studio,LinearLayout“匹配父项-常量”