Coder Social home page Coder Social logo

swipebacklayout's Introduction

SwipeBackLayout

An Android library that help you to build app with swipe back gesture.

Demo Apk

GooglePlay

Requirement

The latest android-support-v4.jar should be referenced by your project.

Usage

  1. Add SwipeBackLayout as a dependency to your existing project.
  2. To enable SwipeBackLayout, you can simply make your Activity extend SwipeBackActivity:
    • In onCreate method, setContentView() should be called as usual.
    • You will have access to the getSwipeBackLayout() method so you can customize the SwipeBackLayout.
  3. Make window translucent by adding <item name="android:windowIsTranslucent">true</item> to your theme.

Simple Example

public class DemoActivity extends SwipeBackActivity implements View.OnClickListener {
    private int[] mBgColors;

    private static int mBgIndex = 0;

    private String mKeyTrackingMode;

    private RadioGroup mTrackingModeGroup;

    private SwipeBackLayout mSwipeBackLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_demo);
        changeActionBarColor();
        findViews();
        mKeyTrackingMode = getString(R.string.key_tracking_mode);
        mSwipeBackLayout = getSwipeBackLayout();

        mTrackingModeGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                int edgeFlag;
                switch (checkedId) {
                    case R.id.mode_left:
                        edgeFlag = SwipeBackLayout.EDGE_LEFT;
                        break;
                    case R.id.mode_right:
                        edgeFlag = SwipeBackLayout.EDGE_RIGHT;
                        break;
                    case R.id.mode_bottom:
                        edgeFlag = SwipeBackLayout.EDGE_BOTTOM;
                        break;
                    default:
                        edgeFlag = SwipeBackLayout.EDGE_ALL;
                }
                mSwipeBackLayout.setEdgeTrackingEnabled(edgeFlag);
                saveTrackingMode(edgeFlag);
            }
        });
    }
...

Download

Download via Jcenter:

compile 'me.imid.swipebacklayout.lib:library:1.1.0'

Support

Pull Requests

I will gladly accept pull requests for fixes and feature enhancements but please do them in the develop branch.

License

Copyright 2013 Isaac Wang

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

swipebacklayout's People

Contributors

cundong avatar fanhongwei avatar huahang avatar ikew0ng avatar kesco avatar laysionqet avatar mwong56 avatar yrom avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

swipebacklayout's Issues

向右滑出现黑屏

首先,谢谢你的分享。
我是个新手,想做一个滑动退出的功能。
我把整个zip下载下来,但是却不知道怎么用。。。
后来我把要用到的Activity 资源等拿到了我的项目,终于运行了起来。
我从A(就一个Button)点击跳转到B ,再想从B返回到A ,发现滑动出来的是黑屏,不是A的界面。请问我这个问题应该怎么解决呢?
打扰了。

java.lang.StackOverflowError

java.lang.StackOverflowError
at android.text.Styled.measureText(Styled.java:454)
at android.text.Layout.measureText(Layout.java:1970)
at android.text.Layout.getLineMax(Layout.java:912)
at android.text.Layout.draw(Layout.java:414)
at android.text.BoringLayout.draw(BoringLayout.java:365)
at android.widget.TextView.onDraw(TextView.java:4431)
at android.view.View.draw(View.java:6880)
at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.View.draw(View.java:6883)
at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.View.buildDrawingCache(View.java:6640)
at android.view.View.getDrawingCache(View.java:6428)
at android.view.ViewGroup.drawChild(ViewGroup.java:1571)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.widget.AbsListView.dispatchDraw(AbsListView.java:1666)
at android.widget.ListView.dispatchDraw(ListView.java:3215)
at android.view.View.draw(View.java:6986)
at android.widget.AbsListView.draw(AbsListView.java:3048)
at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.View.draw(View.java:6883)
at android.support.v4.view.ViewPager.draw(ViewPager.java:1259)
at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.View.draw(View.java:6883)
at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.View.draw(View.java:6883)
at android.widget.FrameLayout.draw(FrameLayout.java:357)
at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
at me.imid.swipebacklayout.lib.SwipeBackLayout.drawChild(SwipeBackLayout.java:405)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.View.draw(View.java:6883)
at android.widget.FrameLayout.draw(FrameLayout.java:357)
at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1921)
at android.view.ViewRoot.draw(ViewRoot.java:1526)
at android.view.ViewRoot.performTraversals(ViewRoot.java:1262)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1863)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
at dalvik.system.NativeStart.main(Native Method)

Bug with Android 4.4

Hello.
I am using your lib in my project. When I run on Android 4.1 or 4.2, it works perfectly. But when I run on 4.4 version, there is a problem.
My activity extends SwipeBackActivity. I add a fragment to it. Inside my fragment, I call a web service to get data and show it by using ListView. But when the activity is shown, the content I loaded from web service does not appear (I am sure that this content has been loaded successfully), it take 2 or 3 seconds to appear. The activity seems to pause 2 or 3 seconds and then continue.
But in this 2 or 3 seconds, if you touch on the screen, everything work normally. The content will be shown immediately. Can you help me with this bug? Thank you so much!

screen shot 2014-09-26 at 11 58 02 am
screen shot 2014-09-26 at 12 00 12 pm

I also attach my source code here :)

ArrayIndexOutOfBoundsException when combine chrisbanes/PhotoView and SwipeBackLayout

Exception stack is

        java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
        at me.imid.swipebacklayout.lib.ViewDragHelper.shouldInterceptTouchEvent(ViewDragHelper.java:1084)
        at me.imid.swipebacklayout.lib.SwipeBackLayout.onInterceptTouchEvent(SwipeBackLayout.java:277)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1851)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2205)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1948)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1970)
        at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1410)
        at android.app.Activity.dispatchTouchEvent(Activity.java:2509)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1912)
        at android.view.View.dispatchPointerEvent(View.java:7333)
        at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3239)
        at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3184)
        at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4237)
        at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4216)
        at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4308)
        at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
        at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
        at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:163)
        at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:4287)
        at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:4327)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
        at android.view.Choreographer.doCallbacks(Choreographer.java:555)
        at android.view.Choreographer.doFrame(Choreographer.java:523)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
        at android.os.Handler.handleCallback(Handler.java:615)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4866)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
        at dalvik.system.NativeStart.main(Native Method)

Cannot finish activity when swipe from right

You cannot finish your activity when you swipe the former activity from right. Actually, it is because you DIDN'T CALCULATE YOUR SCROLL PERCENT IN THE RIGHT WAY.

In line 470, SwipeBackLayout.java, you take it wrong. it should be "mScrollPercent = Math.abs((float) left" rather than what you write "mScrollPercent = Math.abs((float) top". Check it out!

Nexus7除右滑外,所有滑动结束后均fc

附上log:


09-05 21:25:47.061 11676-11676/me.imid.swipebacklayout.demo E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NullPointerException
at android.view.GLES20RenderLayer.redrawLater(GLES20RenderLayer.java:121)
at android.view.View.getHardwareLayer(View.java:12592)
at android.view.View.getDisplayList(View.java:12804)
at android.view.View.getDisplayList(View.java:12880)
at android.view.View.draw(View.java:13657)
at android.view.ViewGroup.drawChild(ViewGroup.java:3083)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2920)
at android.view.View.getDisplayList(View.java:12833)
at android.view.View.getDisplayList(View.java:12880)
at android.view.HardwareRenderer$GlRenderer.buildDisplayList(HardwareRenderer.java:1411)
at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1359)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2367)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2239)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1872)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5481)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
at android.view.Choreographer.doCallbacks(Choreographer.java:562)
at android.view.Choreographer.doFrame(Choreographer.java:532)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)

swipe out to close app

hi 😃 ,first of all,thanks for making this awesome library 👍
today i try to test it on my Galaxy Tab GT-P5100 devices (which installed CM10.2 ROM. android 4.3.1).everything works fine.until i try to swipe out to close the app.things are not working as it should 😱 .i take a screen shot here
qq20131114113109

as you can see here.the lanuch icon title become a little grey and for now i unable to swipe the lancher. even click other app icon to start it.only when i click the back button again under the bottom.what happen to my devices 😱 or it's a bug here ❓ but looks every body test it work fine except me 😢 i also test it on the simulator and got the same result.
qq20131114113254

BTW,i dig into the souces code and i haven't found where you call the finish method.

在PreferenceActivity中会有NullPointerException

我将SwipeBackActivity中的代码应用到PreferenceActivity的子类时
发现需要判断mSwipeBackLayout是否为空,因为
PrefernceActivity会在onCreate中调用onContentChanged,然后调用findViewById,
所以会有类似下面的空指针错误,也就是mSwipeBackLayout会为空.

09-19 22:49:37.740: E/AndroidRuntime(29408): Caused by: java.lang.PointerException
09-19 22:49:37.740: E/AndroidRuntime(29408):    at android.app.ListActivity.onContentChanged(ListActivity.java:240)
09-19 22:49:37.740: E/AndroidRuntime(29408):    at android.preference.PreferenceActivity.onContentChanged(PreferenceActivity.java:1008)
09-19 22:49:37.740: E/AndroidRuntime(29408):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:330)
09-19 22:49:37.740: E/AndroidRuntime(29408):    at android.app.Activity.setContentView(Activity.java:1940)
09-19 22:49:37.740: E/AndroidRuntime(29408):    at android.preference.PreferenceActivity.onCreate(PreferenceActivity.java:558)
09-19 22:49:37.740: E/AndroidRuntime(29408):    at android.app.Activity.performCreate(Activity.java:5082)
09-19 22:49:37.740: E/AndroidRuntime(29408):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
09-19 22:49:37.740: E/AndroidRuntime(29408):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2044)

ClassNotFoundException

Caused by: java.lang.ClassNotFoundException: Didn't find class "me.imid.swipebacklayout.demo.DemoActivity" on path: /data/app/me.imid.swipebacklayout.demo-1.apk

关于增大划动区域的问题

你好,使用了你的划动返回,但只有很小的区域有效。能否让其支持全屏,或者 半屏,就像你的fubbo一样,我设置了全屏但会与其他列表冲突。

Full screen drag

What to do to make drag full screen instead of just edge? I want to finish the activity on swiping left anywhere on the screen?

swipebacklayout太灵敏

swipebacklayout太灵敏,有时候点一下就返回上一个了。
如何设置滑动距离稍微大一些

是否支持TabActivity

TabActivity 使用SwipeBackLayout,整个Activity的标题栏没有跟随移动,是不支持TabActivity吗?

Too much java.lang.IllegalArgumentException: pointerIndex out of range

After using this nice project, we received lots for crashes detailed as bellow, any help would be apperaciated:

Caused by: java.lang.IllegalArgumentException: pointerIndex out of range
at android.view.MotionEvent.nativeGetAxisValue(Native Method)
at android.view.MotionEvent.getX(MotionEvent.java:1979)
at android.support.v4.view.MotionEventCompatEclair.getX(MotionEventCompatEclair.java:32)
at android.support.v4.view.MotionEventCompat$EclairMotionEventVersionImpl.getX(MotionEventCompat.java:91)
at android.support.v4.view.MotionEventCompat.getX(MotionEventCompat.java:219)
at me.imid.swipebacklayout.lib.b.b(ViewDragHelper.java:1226)
at me.imid.swipebacklayout.lib.SwipeBackLayout.onTouchEvent(SwipeBackLayout.java:380)
at android.view.View.dispatchTouchEvent(View.java:7714)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2210)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1945)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2068)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1515)
at android.app.Activity.dispatchTouchEvent(Activity.java:2473)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2016)
at android.view.View.dispatchPointerEvent(View.java:7894)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:3986)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3865)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3426)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3476)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3445)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3552)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3453)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3609)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3426)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3476)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3445)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3453)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3426)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5571)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5551)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5522)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5651)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:176)
at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:5624)
at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:5670)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
at android.view.Choreographer.doCallbacks(Choreographer.java:574)
at android.view.Choreographer.doFrame(Choreographer.java:542)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5034)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:807)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:623)
... 1 more
java.lang.IllegalArgumentException: pointerIndex out of range
at android.view.MotionEvent.nativeGetAxisValue(Native Method)
at android.view.MotionEvent.getX(MotionEvent.java:1979)
at android.support.v4.view.MotionEventCompatEclair.getX(MotionEventCompatEclair.java:32)
at android.support.v4.view.MotionEventCompat$EclairMotionEventVersionImpl.getX(MotionEventCompat.java:91)
at android.support.v4.view.MotionEventCompat.getX(MotionEventCompat.java:219)
at me.imid.swipebacklayout.lib.b.b(ViewDragHelper.java:1226)
at me.imid.swipebacklayout.lib.SwipeBackLayout.onTouchEvent(SwipeBackLayout.java:380)
at android.view.View.dispatchTouchEvent(View.java:7714)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2210)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1945)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2068)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1515)
at android.app.Activity.dispatchTouchEvent(Activity.java:2473)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2016)
at android.view.View.dispatchPointerEvent(View.java:7894)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:3986)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3865)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3426)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3476)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3445)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3552)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3453)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3609)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3426)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3476)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3445)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3453)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3426)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5571)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5551)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5522)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5651)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:176)
at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:5624)
at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:5670)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
at android.view.Choreographer.doCallbacks(Choreographer.java:574)
at android.view.Choreographer.doFrame(Choreographer.java:542)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5034)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:807)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:623)
at dalvik.system.NativeStart.main(Native Method)

java.lang.NullPointerException

06-09 14:38:53.874: E/AndroidRuntime(26777): FATAL EXCEPTION: main
06-09 14:38:53.874: E/AndroidRuntime(26777): java.lang.NullPointerException
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.view.GLES20RenderLayer.redrawLater(GLES20RenderLayer.java:114)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.view.View.getHardwareLayer(View.java:12562)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.view.View.getDisplayList(View.java:12809)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.view.View.getDisplayList(View.java:12890)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.view.View.draw(View.java:13640)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.view.ViewGroup.drawChild(ViewGroup.java:3050)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2912)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.view.View.getDisplayList(View.java:12841)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.view.View.getDisplayList(View.java:12890)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1249)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.view.ViewRootImpl.draw(ViewRootImpl.java:2567)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2434)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2236)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1211)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5039)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:776)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.view.Choreographer.doCallbacks(Choreographer.java:579)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.view.Choreographer.doFrame(Choreographer.java:548)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:762)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.os.Handler.handleCallback(Handler.java:800)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.os.Handler.dispatchMessage(Handler.java:100)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.os.Looper.loop(Looper.java:194)
06-09 14:38:53.874: E/AndroidRuntime(26777): at android.app.ActivityThread.main(ActivityThread.java:5433)
06-09 14:38:53.874: E/AndroidRuntime(26777): at java.lang.reflect.Method.invokeNative(Native Method)
06-09 14:38:53.874: E/AndroidRuntime(26777): at java.lang.reflect.Method.invoke(Method.java:525)
06-09 14:38:53.874: E/AndroidRuntime(26777): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:922)
06-09 14:38:53.874: E/AndroidRuntime(26777): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:689)
06-09 14:38:53.874: E/AndroidRuntime(26777): at dalvik.system.NativeStart.main(Native Method)
这个错误怎么解决?

setScrollThresHold(float f)失效问题

我希望滑动的距离增加一些再退出,因此使用了setScrollThresHold(float f),但是这个不起作用啊,还是滑动非常小的一段距离界面就退出了,希望达人答疑解惑,不胜感激。
ps:如果想要增加在边界上滑动的距离,应该使用什么方法呢?

5.0上滑动黑屏问题,convertToTranslucent方法参数变了

/**
* Convert a translucent themed Activity
* {@link android.R.attr#windowIsTranslucent} back from opaque to
* translucent following a call to {@link #convertActivityFromTranslucent()}
* .
*


* Calling this allows the Activity behind this one to be seen again. Once
* all such Activities have been redrawn
*


* This call has no effect on non-translucent activities or on activities
* with the {@link android.R.attr#windowIsFloating} attribute.
*/
@SuppressLint("NewApi")
public void convertActivityToTranslucent() {
try {
Class[] classes = Activity.class.getDeclaredClasses(); Class translucentConversionListenerClazz = null;
for (Class clazz : classes) {
if (clazz.getSimpleName().contains(
"TranslucentConversionListener")) {
translucentConversionListenerClazz = clazz;
}
}
Method[] methods = Activity.class.getDeclaredMethods();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.L) {
Method method = Activity.class.getDeclaredMethod(
"convertToTranslucent",
translucentConversionListenerClazz);
method.setAccessible(true);
method.invoke(mActivity, new Object[] { null });
} else {
Method method = Activity.class.getDeclaredMethod(
"convertToTranslucent",
translucentConversionListenerClazz,
ActivityOptions.class);
method.setAccessible(true);
method.invoke(mActivity, new Object[] { null, null });
}
} catch (Throwable t) {
t.printStackTrace();
}
}

Would prefer it to show the previous activity, like overridePendingAnimation can

Currently using override pending animation to fade an activity out to the right and move the existing previous activity up from the back (similar functionality can be seen in the Pinterest app)

This library doesn't show the activity that is previous in the stack.

I tried with the demo app and it simply doesn't have this functionality, any suggestions?

左滑返回时出现黑屏

RT:
具体描述:
(0)一个子Activity继承自SwipeBackActivity,没有作任何修改。
(1)在一个子Activity中从左边滑动想返回时,屏幕变黑。再按两次按物理返回键时
可以回到父Activity中(感觉进入了一个子Activity与父Activity的一个中间黑色界面)
(2)系统MIUI V5 3.8.16

和scrollview listview 上下滑动有点冲突

设置全屏响应后,在scrollview listview页面,很容易误操作,比如上下滑动,稍微左右方向位移,会触发关闭页面,另外,在viewpage页面上可以有更方便的封装,在第一页左滑时更方便的关闭。
不过已经做的很好了,非常感谢!

设置滑动区域为全屏以后会影响ViewPager

@Issacw0ng 你好,看到 #8 。通过设置SwipeBackLayout 的setEdgeSize 我设置为我手机的宽度,同时设置了setEdgeTrackingEnabled 为EDGE_LEFT。这个时候右滑其实没有响应,然后我修改了ViewDragHelper 的getEdgeTouched 的返回值为 EDGE_LEFT。结果任意位置右滑是能响应关闭的。但是此时 Activity 中的 ViewPager 并没有响应,请问有什么解决办法吗?

4.4系统下右滑显示桌面

您好,使用了您这个库,效果很棒,谢谢您。但是在4.4系统下,所有子页面右滑显示的总是桌面,页面退出后,才会再由桌面显示成上一级页面。您提供的Demo也是这样。想请问下这种问题有什么办法解决吗?

在 android 4.4.2 下滑动返回时下方 Activity 会透明

直接透过显示出 Launcher 。

而如果将下方的 Activity 的 windowIsTranslucent 设为false, 则覆盖在上面的 Activity 在滑动返回时表现正常,在调用 scrollToFinishActivity 时看不到下方的Activity(显示为黑色)

9560c70 提交之前,scrollToFinishActivity 同样正常。

请问该如何解决,谢谢~

Nexus5 Android 4.4.2, targetSdkVersion 19

how to add as dependency?

I'm using Eclipse with ADT, how can I add this project as dependency?

I've tried importing the library folder as an Android project into Eclipse, and then add this project into Java build path as projects. But it seems to be wrong.

Thanks in advance.

NullPointerException when Activity finished

set layerType to ViewCompat.LAYER_TYPE_NONE in SwipeBackLayout$ViewDragCallback.onViewDragStateChanged(int) causes this problem.

you can comment out following lines to avoid crash.

        if (state == ViewDragHelper.STATE_IDLE) {
            ViewCompat.setLayerType(SwipeBackLayout.this, ViewCompat.LAYER_TYPE_NONE, null);
        } else if (state == ViewDragHelper.STATE_SETTLING) {
            ViewCompat.setLayerType(SwipeBackLayout.this, ViewCompat.LAYER_TYPE_HARDWARE, null);
        }

android 4.4.4侧滑退出显示app启动界面

RT:
情况,我手机上两台手机:nexus5(4.4.4)与化为X6(4.4.2)退出滑动效果不一致。
两台手机都是运行同一套代码
1,nexus5 只有当activity完全退出时,前一个activity才出弹出
2,华为X6则可以完美展示(即在滑动退出时,就可以看见前一个activity)

(已经设置透明主题)
参考过这个问题:
#4

调用setEdgeSize后设置范围并调用setEdgeTrackingEnabled设置为EDGE_LEFT后,不能滑动

本来想修改响应范围为整个界面的,但是实际使用过程中出现了问题。在sample中做的测试,使用setEdgeSize设置响应范围为整个界面,并使用setEdgeTrackingEnabled设置EDGE_LEFT时,不能滑动,设置EDGE_RIGHT时,上半部分界面可以响应滑动,下半部分界面不能,设置其他边界时也有问题。@Issacw0ng 大神,抽空看看,帮忙解决下吧。Thanks。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.