scrollTo внутри пользовательского scrollview - PullRequest
0 голосов
/ 15 января 2020

У меня есть этот пользовательский вид прокрутки:

public class MyScrollView extends NestedScrollView {

    // true if we can scroll (not locked)
    // false if we cannot scroll (locked)
    private boolean mScrollable = false;

    public MyScrollView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
    }
    public MyScrollView(Context context, AttributeSet attrs)
    {
        super(context, attrs);
    }

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

    public void setScrollingEnabled(boolean enabled) {
        mScrollable = enabled;
    }

    public boolean isScrollable() {
        return mScrollable;
    }

    @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        if (event.getAction() == KeyEvent.ACTION_DOWN) {

            switch(event.getKeyCode()){
                case KeyEvent.KEYCODE_DPAD_RIGHT:
                    this.scrollTo(100, 0);
                    return true;
                case KeyEvent.KEYCODE_DPAD_LEFT:
                    this.scrollTo(-100, 0);
                    return true;
            }
        }
        return super.dispatchKeyEvent(event);
    }
}

Я хочу прокрутить до заданного значения c x и y, как только пользователь попытается прокрутить. Я могу перехватить правое и левое событие, потому что могу попасть внутрь двух случаев моего переключателя, однако this.scrollTo (100, 0) ничего не делает с просмотром прокрутки.

Это как у меня это в моем макете:

<com.example.myapp.custom_elements.MyScrollView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:scrollbarThumbHorizontal="@null"
    android:focusableInTouchMode="true"
    android:focusable="true"/>

(Кстати, прокрутка работает нормально, если я возвращаю false в моих случаях переключения).

...