6

ユーザーが更新のためにプルダウンしていることを検出したい

(ActionBar の下の行を更新すると、その UI 幅に拡張され始めます)。

ActionBar をメッセージ (「下にスワイプして更新」) に置き換えたいのですが、

関数を呼び出すためにどのイベントを使用すればよいかわかりません。

4

1 に答える 1

2

SwipeRefreshLayout を拡張し、onTouchEvent をオーバーライドし、ACTION_DOWN イベントで変更を加えることができます。

public class MySwipeRefreshLayout extends SwipeRefreshLayout {

    private Runnable onActionDown, onActionUp;

    public MySwipeRefreshLayout(Context context, AttributeSet attributeSet) {
        super(context,attributeSet);
    }

    public void setOnActionDown(Runnable onActionDown) {
        this.onActionDown = onActionDown;
    }

    public void setOnActionUp(Runnable onActionUp) {
        this.onActionUp = onActionUp;
    }

    @Override
    public boolean onTouchEvent (MotionEvent ev) {
        if (ev.getAction() == ev.ACTION_DOWN) {
            if (onActionDown != null) {
                onActionDown.run();
            }
        } else if (ev.getAction() == ev.ACTION_UP) {
            if (onActionUp != null) {
                onActionUp.run();
            }
        }
        return super.onTouchEvent(ev);
    }
 :
 :
}

レイアウトで拡張クラスを使用していることを確認してください。次に、ビューで Runnable を setOnActionDown に渡して、アクションバーまたはその他の必要なものを更新できます....

于 2014-04-29T21:16:02.890 に答える