TechIsFun / AndroidTopSheet

A "top" version of BottomSheetDialog
Apache License 2.0
84 stars 73 forks source link

How to set the TopSheetBehavior up? #3

Closed carlos-mg89 closed 6 years ago

carlos-mg89 commented 6 years ago

I'm currently using the BottomSheetBehavior within my layout by using the following code:

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:behavior_hideable="false"
        app:behavior_peekHeight="35dp"
        app:layout_behavior="android.support.design.widget.BottomSheetBehavior">
</RelativeLayout>

I'd love that by replacing the app:layout_behavior parameter value with com.my.app.components.TopSheetBehavior will work out of the box, as it does with the BottomSheetBehavior.

Am I missing anything? At the moment I'm getting a NullPointerException, with the following trace:

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.walkaholic.hikeapp.debug, PID: 20213
                  java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.widget.ViewDragHelper.processTouchEvent(android.view.MotionEvent)' on a null object reference
                      at com.walkaholic.hikeapp.components.TopSheetBehavior.onTouchEvent(TopSheetBehavior.java:285)
                      at android.support.design.widget.CoordinatorLayout.resetTouchBehaviors(CoordinatorLayout.java:396)
                      at android.support.design.widget.CoordinatorLayout.onAttachedToWindow(CoordinatorLayout.java:238)
                      at android.view.View.dispatchAttachedToWindow(View.java:16638)
                      at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3149)
                      at android.view.ViewGroup.addViewInner(ViewGroup.java:4695)
                      at android.view.ViewGroup.addView(ViewGroup.java:4497)
                      at android.view.ViewGroup.addView(ViewGroup.java:4437)
                      at android.view.ViewGroup.addView(ViewGroup.java:4410)
                      at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1434)
                      at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1759)
                      at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1827)
                      at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797)
                      at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2596)
                      at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2383)
                      at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2338)
                      at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2245)
                      at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:703)
                      at android.os.Handler.handleCallback(Handler.java:751)
                      at android.os.Handler.dispatchMessage(Handler.java:95)
                      at android.os.Looper.loop(Looper.java:154)
                      at android.app.ActivityThread.main(ActivityThread.java:6682)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
carlos-mg89 commented 6 years ago

While checking your implementation, I found another person who took your code and made a fork that is working out of the box for my case. In case you are interested and would like to update your repository, I've tested it myself and works nicely.

https://github.com/MedveDomg/AndroidTopSheet/blob/master/library/src/main/java/com/github/techisfun/android/topsheet/TopSheetBehavior.java