Вопрос по android – Android HorizontalScrollView отключить прокрутку

5

У меня есть HorizontalScrollView с длинным представлением в качестве дочернего элемента, поэтому HorizontalScrollView можно прокручивать и можно прокручивать его дочерний элемент по горизонтали. Есть ли возможность заблокировать это? Я не хочу, чтобы пользователь мог прокручивать представление.

Представление прокрутки для прокрутки! Если вы не хотите использовать пользовательскую прокрутку, выберите другой способ, кроме использования scrollView. Вы можете использовать анимацию вместо. Ali Behzadian Nejad

Ваш Ответ

2   ответа
2

Просто нужно создать свой собственный HorizontalScrollView и переопределить метод onTouchEvent

public class MyHSV extends HorizontalScrollView {

    public MyHSV(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init(context);
    }

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

    public MyHSV(Context context) {
        super(context);
        init(context);
    }

    void init(Context context) {
        // remove the fading as the HSV looks better without it
        setHorizontalFadingEdgeEnabled(false);
        setVerticalFadingEdgeEnabled(false);
    }

    @Override
    public boolean onTouchEvent(MotionEvent ev) {
        // Do not allow touch events.
        return false;
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        // Do not allow touch events.
        return false;
    }

}

А потом в XML-файле

<pathToClass.MyHSV xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:scrollbars="none"
    android:id="@+id/myHSV>

</pathToClass.MyHSV>
14

OnTouchListener, например:

ВonCreate метод

HorziontalScrollView scrollView= (HorizontalScrollView)findViewById(R.id.scrollView);
scrollView.setOnTouchListener(new OnTouch());

И имеет класс:

private class OnTouch implements OnTouchListener
{
    @Override
    public boolean onTouch(View v, MotionEvent event) {
    return true;
    }
}
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы