如何在Android中使用滚动模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Android中使用滚动模式相关的知识,希望对你有一定的参考价值。

Problem

我需要优先在我的Activity中滚动事件。

我正在使用aiCharts(图表库),我需要在我的区域上进行缩放,平移等。没有任何ScrollViews它工作正常,但是,如果我使用提到的Layout,这些功能很糟糕。我认为因为观点的优先权。

Possible solution

我试图在需要位于setOverScrollMode(View.OVER_SCROLL_ALWAYS);ScrollView“顶部”但不能正常工作的视图上使用HorizontalScrollView

Layout

 <ScrollView 
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <HorizontalScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <RelativeLayout
                android:id="@+id/screen_relative_layout"
                android:layout_width="wrap_content"
                android:layout_height="match_parent" >
            </RelativeLayout>        
        </HorizontalScrollView>
    </ScrollView>

通过添加到RelativeLayout以编程方式添加我的所有视图。

答案

更改您的RelativeLayout,以便android:layout_height="wrap_content"也可以自己定制滚动视图,以便拦截移动而不是其他内容:

public class VerticalScrollView extends ScrollView {
private float xDistance, yDistance, lastX, lastY;

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

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
    switch (ev.getAction()) {
        case MotionEvent.ACTION_DOWN:
            xDistance = yDistance = 0f;
            lastX = ev.getX();
            lastY = ev.getY();
            break;
        case MotionEvent.ACTION_MOVE:
            final float curX = ev.getX();
            final float curY = ev.getY();
            xDistance += Math.abs(curX - lastX);
            yDistance += Math.abs(curY - lastY);
            lastX = curX;
            lastY = curY;
            if(xDistance > yDistance)
                return false;
    }

    return super.onInterceptTouchEvent(ev);
}
}  

source

让我知道它是如何工作的!

以上是关于如何在Android中使用滚动模式的主要内容,如果未能解决你的问题,请参考以下文章

如何使用滚动片段容器实现通用布局?

在 CoordinatorLayout Android 中的 ViewPager 片段中使用 NestedScrollView 突然滚动

在我的 android 应用程序中滚动列表视图时,数据正在消失。我在片段中使用列表视图

如何在Android中使用滚动模式

带有两个列表片段的可滚动布局

如何在 MS Word 文档中显示代码片段,因为它在 *** 中显示(滚动条和灰色背景)