2

ViewPagerのfakedragを使用して画像のスライドショーを作成しているAndroidアプリを開発しています。オンタッチはデフォルトで無効になっています。タッチ時にドラッグプロセスを停止したいです。私はタッチで次のことを試しました、

@Override
public boolean onTouch(View v, MotionEvent event) 
{


    if(_mViewPager.getId() == v.getId())
    {
        if(event.getAction() == MotionEvent.ACTION_DOWN)
        {
            _mViewPager.beginFakeDrag();
            _mViewPager.endFakeDrag();
        }
    }

    return false;
}

ただし、上記のコードは強制的に閉じます。以下のエラーログをご覧ください。

07-18 14:09:12.568: E/AndroidRuntime(17547): FATAL EXCEPTION: main
07-18 14:09:12.568: E/AndroidRuntime(17547): java.lang.IllegalStateException: No fake   drag in progress. Call beginFakeDrag first.
07-18 14:09:12.568: E/AndroidRuntime(17547):    at android.support.v4.view.ViewPager.fakeDragBy(ViewPager.java:2313)
07-18 14:09:12.568: E/AndroidRuntime(17547):    at com.exmp.myapp.learn.alphabets.AlphaPager$3$1.run(AlphaPager.java:454)
07-18 14:09:12.568: E/AndroidRuntime(17547):    at android.os.Handler.handleCallback(Handler.java:605)
07-18 14:09:12.568: E/AndroidRuntime(17547):    at android.os.Handler.dispatchMessage(Handler.java:92)
07-18 14:09:12.568: E/AndroidRuntime(17547):    at android.os.Looper.loop(Looper.java:137)
07-18 14:09:12.568: E/AndroidRuntime(17547):    at android.app.ActivityThread.main(ActivityThread.java:4424)
07-18 14:09:12.568: E/AndroidRuntime(17547):    at java.lang.reflect.Method.invokeNative(Native Method)
07-18 14:09:12.568: E/AndroidRuntime(17547):    at java.lang.reflect.Method.invoke(Method.java:511)
07-18 14:09:12.568: E/AndroidRuntime(17547):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
07-18 14:09:12.568: E/AndroidRuntime(17547):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
07-18 14:09:12.568: E/AndroidRuntime(17547):    at    dalvik.system.NativeStart.main(Native Method)

助けてください。ありがとう!

4

1 に答える 1

2
if (!_mViewPager.isFakeDragging()) {
    _mViewPager.beginFakeDrag();
} else {
    _mViewPager.endFakeDrag();
}

お役に立てば幸いです。

于 2016-01-28T10:52:46.127 に答える