laenger / viewpagerbottomsheet Goto Github PK
View Code? Open in Web Editor NEWUse ViewPagers in Bottom Sheets!
License: Apache License 2.0
Use ViewPagers in Bottom Sheets!
License: Apache License 2.0
Attempt to invoke virtual method 'java.lang.Object java.lang.ref.WeakReference.get()' on a null object reference
biz.laenger.android.vpbs.ViewPagerBottomSheetBehavior.invalidateScrollingChild(ViewPagerBottomSheetBehavior.java:433)
final View scrollingChild = findScrollingChild(mViewRef.get());
mViewRef is null;
Hi,
First thanks for the excellent library, can you please let me know how to get callbacks for page events like onSlide
and page events like STATE_EXPANDED, STATE_COLLAPSED, STATE_DRAGGING, STATE_SETTLING, STATE_HIDDEN
?
The scroll events are not dispatched when there are adjacent children that can scroll, like scenario below.
<LinearLayout
...
layout_behavior="bottom_sheet" >
<RecyclerView/>
<NestedScrollView/>
<ViewPager />
</LinearLayout>
` final int currentItem = viewPager.getCurrentItem();
for (int i = 0; i < viewPager.getChildCount(); i++) {
final View child = viewPager.getChildAt(i);
final ViewPager.LayoutParams layoutParams = (ViewPager.LayoutParams) child.getLayoutParams();
if (!layoutParams.isDecor && currentItem == layoutParams.position) {
return child;
}
}
return null;`
layoutParams.position is a private field couldn't use this. Can you help
How can I set height? I do not want this to take up whole page size.
hello
i have a project with androidx
and i add vpbs module in my project
but in class ViewPagerUtils
layoutParams.position (position is private in viewpager in androidx)
so i have an error and can not use vbps
now how i should do?
thanks
android studio can't resolve dependencies 'biz.laenger.android:vpbs:0.0.4'
I need use this but ....
bottomsheet view to BottomSheetBehavior with BottomSheetBehavior.from(view) doesn't work
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.ref.Reference.get()' on a null object reference
at biz.laenger.android.vpbs.ViewPagerBottomSheetBehavior.invalidateScrollingChild(ViewPagerBottomSheetBehavior.java:432)
at biz.laenger.android.vpbs.BottomSheetUtils$BottomSheetViewPagerListener$1.run(BottomSheetUtils.java:35)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:169)
at android.app.ActivityThread.main(ActivityThread.java:6595)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Thanks a lot for this library!
But there is a little problem. When i try to swipe ViewPager's fragment, it often close bottom sheet;
To change fragment of viewpager i should move finger right on x axis without any y movements.
Is there any workaround to intercept this action to fix this strange behavior?
I'm trying to get this library working with a ViewPager inside a LinearLayout with BottomSheetBehavior, which contains fragments with a NestedScrollView inside a RelativeLayout. Layouts are below. Everything works as expected, apart from the actual nested scrolling. Is there something that I'm missing? At first I thought the additional OnPageChangedListener was the issue, but even after removing it, it still didn't work.
layout/activity_main.xml
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/activity_bottom_sheet_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/color_white"
android:elevation="@dimen/design_appbar_elevation"
app:behavior_peekHeight="@dimen/height_bottom_sheet"
app:layout_behavior="@string/view_pager_bottom_sheet_behavior">
<android.support.v7.widget.RecyclerView
android:id="@+id/activity_bottom_sheet_recyclerview"
android:layout_width="match_parent"
android:layout_height="@dimen/height_bottom_sheet"
android:clipToPadding="false"
android:orientation="horizontal"
android:background="@color/color_primary"
app:layoutManager="android.support.v7.widget.LinearLayoutManager"/>
<android.support.v4.view.ViewPager
android:id="@+id/activity_bottom_sheet_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>
layout/fragment_nested.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/color_white">
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical">
</android.support.v4.widget.NestedScrollView>
</RelativeLayout>
java/MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mViewPager = (ViewPager) findViewById(R.id.activity_bottom_sheet_viewpager); mViewPager.addOnPageChangeListener(mOnViewPagerPageChangeListener);
BottomSheetUtils.setupViewPager(mViewPager);
}
Hello,I am getting NPE when changing the device font to Gothic Bold or device language to Gujrati with maximum font size applied.
Device : Samsung Galaxy On8
OS Version : Lollipop
Please help me out in fixing this.
After debugging I got to know the view is becoming null in this line
"View scrollingChild = this.findScrollingChild((View)this.mViewRef.get());" which is in ViewPagerBottomSheetBehaviour class. How to null check the view here?
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.ref.WeakReference.get()' on a null object reference
at biz.laenger.android.vpbs.ViewPagerBottomSheetBehavior.invalidateScrollingChild(ViewPagerBottomSheetBehavior.java:433)
at biz.laenger.android.vpbs.BottomSheetUtils$BottomSheetViewPagerListener$1.run(BottomSheetUtils.java:32)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7402)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
repositories {
maven { url "https://raw.github.com/laenger/maven-releases/master/releases" }
}
404 not found
Hi,
Can you help me add anchor to the persistent bottom sheet, sliding from bottom to center and then from center to top...
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.widget.ViewDragHelper.processTouchEvent(android.view.MotionEvent)' on a null object reference at biz.laenger.android.vpbs.ViewPagerBottomSheetBehavior.onTouchEvent(ViewPagerBottomSheetBehavior.java:320)
I am using swipe to refresh view inside bottomsheet viewpager, when I long swipe the view swipe to refresh
it refresh icon get stuck down as the parent bottom sheet is started moving down, if I know the status of the bottom sheet I clear the swipe to refresh view.
i just integrated the library and i got this Error on launching the app
FATAL EXCEPTION: main Process: com.wadeeny.ondemand, PID: 20144 java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.view.View.isNestedScrollingEnabled()' on a null object reference at android.support.v4.view.ViewCompat$ViewCompatApi21Impl.isNestedScrollingEnabled(ViewCompat.java:1320) at android.support.v4.view.ViewCompat.isNestedScrollingEnabled(ViewCompat.java:3308) at biz.laenger.android.vpbs.ViewPagerBottomSheetBehavior.findScrollingChild(ViewPagerBottomSheetBehavior.java:609) at biz.laenger.android.vpbs.ViewPagerBottomSheetBehavior.findScrollingChild(ViewPagerBottomSheetBehavior.java:615) at biz.laenger.android.vpbs.ViewPagerBottomSheetBehavior.findScrollingChild(ViewPagerBottomSheetBehavior.java:622) at biz.laenger.android.vpbs.ViewPagerBottomSheetBehavior.onLayoutChild(ViewPagerBottomSheetBehavior.java:252) at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:894) at android.view.View.layout(View.java:19590) at android.view.ViewGroup.layout(ViewGroup.java:6053) at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1171) at android.view.View.layout(View.java:19590) at android.view.ViewGroup.layout(ViewGroup.java:6053) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at android.view.View.layout(View.java:19590) at android.view.ViewGroup.layout(ViewGroup.java:6053) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at android.view.View.layout(View.java:19590) at android.view.ViewGroup.layout(ViewGroup.java:6053) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635) at android.widget.LinearLayout.onLayout(LinearLayout.java:1544) at android.view.View.layout(View.java:19590) at android.view.ViewGroup.layout(ViewGroup.java:6053) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at android.view.View.layout(View.java:19590) at android.view.ViewGroup.layout(ViewGroup.java:6053) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635) at android.widget.LinearLayout.onLayout(LinearLayout.java:1544) at android.view.View.layout(View.java:19590) at android.view.ViewGroup.layout(ViewGroup.java:6053) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at com.android.internal.policy.DecorView.onLayout(DecorView.java:758) at android.view.View.layout(View.java:19590) at android.view.ViewGroup.layout(ViewGroup.java:6053) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2488) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2204) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1390) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6754) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:966) at android.view.Choreographer.doCallbacks(Choreographer.java:778) at android.view.Choreographer.doFrame(Choreographer.java:713) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:952) at android.os.Handler.handleCallback(Handler.java:789) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:172) at android.app.ActivityThread.main(ActivityThread.java:6637) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Thank you for the library, it saves my time!
Can you migrate the library to androidx (or create another repo, like ViewPagerBottomSheetX)?
Thanks
java.lang.NullPointerException:
at biz.laenger.android.vpbs.ViewPagerBottomSheetBehavior.onInterceptTouchEvent (ViewPagerBottomSheetBehavior.java:301)
at android.support.design.widget.CoordinatorLayout.performIntercept (CoordinatorLayout.java:473)
at android.support.design.widget.CoordinatorLayout.onInterceptTouchEvent (CoordinatorLayout.java:510)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2696)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3159)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2844)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3159)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2844)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3159)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2844)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3159)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2844)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3159)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2844)
at com.android.internal.policy.DecorView.superDispatchTouchEvent (DecorView.java:601)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent (PhoneWindow.java:1871)
at android.app.Activity.dispatchTouchEvent (Activity.java:3384)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent (WindowCallbackWrapper.java:69)
at com.android.internal.policy.DecorView.dispatchTouchEvent (DecorView.java:563)
at android.view.View.dispatchPointerEvent (View.java:12791)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent (ViewRootImpl.java:5675)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess (ViewRootImpl.java:5470)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4963)
at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:5016)
at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4982)
at android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:5119)
at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:4990)
at android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:5176)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4963)
at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:5016)
at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4982)
at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:4990)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4963)
at android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.java:7742)
at android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl.java:7682)
at android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.java:7643)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent (ViewRootImpl.java:7853)
at android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java:197)
at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents (Native Method)
at android.view.InputEventReceiver.consumeBatchedInputEvents (InputEventReceiver.java:186)
at android.view.ViewRootImpl.doConsumeBatchedInput (ViewRootImpl.java:7816)
at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run (ViewRootImpl.java:7880)
at android.view.Choreographer$CallbackRecord.run (Choreographer.java:911)
at android.view.Choreographer.doCallbacks (Choreographer.java:723)
at android.view.Choreographer.doFrame (Choreographer.java:652)
at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:897)
at android.os.Handler.handleCallback (Handler.java:789)
at android.os.Handler.dispatchMessage (Handler.java:98)
at android.os.Looper.loop (Looper.java:164)
at android.app.ActivityThread.main (ActivityThread.java:6942)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)
Could not GET 'https://raw.github.com/laenger/maven-releases/master/releases/com/android/support/appcompat-v7/'. Received status code 400 from server: Bad Request
I am getting this error.
Previously when using bottomSheet library of material design, I was able to setState by creating object of bottomSheetBehavior,but now it shows error on creating variable of BottomSheetBehavior.
So how can I set the state of bottomSheet as expanded??
How to display bottom sheet below main toolbar?
Hi i want to display bottom sheet view below my main toolbar. how can i fix this on because of i want to display my toolbar with back arrow
Error:Failed to resolve: biz.laenger.android:vpbs:0.0.4
Error:(7, 0) Could not get unknown property 'compileSdkVersion' for root project 'BottomSheetApp' of type org.gradle.api.Project.
Open File
Error:(30, 0) Could not get unknown property 'butterknifeVersion' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
Open File
I am having this problem many times
Exception java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.ref.WeakReference.get()' on a null object reference
biz.laenger.android.vpbs.ViewPagerBottomSheetBehavior.onInterceptTouchEvent (ViewPagerBottomSheetBehavior.java:289)
android.support.design.widget.CoordinatorLayout.performIntercept (CoordinatorLayout.java:460)
android.support.design.widget.CoordinatorLayout.onInterceptTouchEvent (CoordinatorLayout.java:499)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2310)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2709)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2371)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2709)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2371)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2709)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2371)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2709)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2371)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2709)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2371)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2709)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2371)
com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent (PhoneWindow.java:2568)
com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent (PhoneWindow.java:1776)
android.app.Activity.dispatchTouchEvent (Activity.java:2866)
android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent (WindowCallbackWrapper.java:71)
android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent (WindowCallbackWrapper.java:71)
com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent (PhoneWindow.java:2529)
android.view.View.dispatchPointerEvent (View.java:9186)
android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent (ViewRootImpl.java:4706)
android.view.ViewRootImpl$ViewPostImeInputStage.onProcess (ViewRootImpl.java:4544)
android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4068)
android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:4121)
android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4087)
android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:4201)
android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:4095)
android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:4258)
android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4068)
android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:4121)
android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4087)
android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:4095)
android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4068)
android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.java:6564)
android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl.java:6454)
android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.java:6425)
android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent (ViewRootImpl.java:6654)
android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java:185)
android.os.MessageQueue.nativePollOnce (MessageQueue.java)
android.os.MessageQueue.next (MessageQueue.java:143)
android.os.Looper.loop (Looper.java:130)
android.app.ActivityThread.main (ActivityThread.java:5951)
java.lang.reflect.Method.invoke (Method.java)
java.lang.reflect.Method.invoke (Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1388)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1183)
First of all, amazing work. Saved me a lot of work.
I am building a library(it uses this library internally) and I am planning to upload it to jCenter. But as your library is only in Maven, people who want to use my library will also have to include your Maven dependency. So it would be really helpful if you can publish your library in jCenter via bintray.
I tried adding required classes from your library to mine but ran into compile issues on gradlew install
. If you would help solve it, it would be great. Mostly the issues are Annotation related.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.