cleveroad / loopbar Goto Github PK
View Code? Open in Web Editor NEWTap Bar with infinite scrolling. Make the navigation menu right at fingerprints, in a tab bar.
License: MIT License
Tap Bar with infinite scrolling. Make the navigation menu right at fingerprints, in a tab bar.
License: MIT License
Hi,
When a android:background attribute is used disappears the app:enls_overlaySize. In order to reproduce it, just set the android:background in the example project.
Very cool library, thanks
Nice library.
Is there a way to make the label not break? The menu items are shrunk to the point there can only be 7 characters each line.
I would to have it expand based on the length of the text (label) instead of breaking
I am using Loopbar with target SDK 29 and min 21 running on an Android SDK 28 device. I get the following error when added loop bar in Activity:
java.lang.IllegalArgumentException: Invalid Region.Op - only INTERSECT and DIFFERENCE are allowed at android.graphics.Canvas.checkValidClipOp(Canvas.java:779) at android.graphics.Canvas.clipRect(Canvas.java:826) at com.cleveroad.loopbar.widget.NegativeMarginFixColorDrawable.draw(NegativeMarginFixColorDrawable.java:14) at android.view.View.getDrawableRenderNode(View.java:22206) at android.view.View.drawBackground(View.java:22112) at android.view.View.draw(View.java:21868) at android.view.View.updateDisplayListIfDirty(View.java:20750) at android.view.View.draw(View.java:21603) at android.view.ViewGroup.drawChild(ViewGroup.java:4558) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4333) at android.view.View.draw(View.java:21880) at android.view.View.updateDisplayListIfDirty(View.java:20750) at android.view.View.draw(View.java:21603) at android.view.ViewGroup.drawChild(ViewGroup.java:4558) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4333) at android.view.View.draw(View.java:21880) at android.view.View.updateDisplayListIfDirty(View.java:20750) at android.view.View.draw(View.java:21603) at android.view.ViewGroup.drawChild(ViewGroup.java:4558) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4333) at android.view.View.draw(View.java:21880) at android.view.View.updateDisplayListIfDirty(View.java:20750) at android.view.View.draw(View.java:21603) at android.view.ViewGroup.drawChild(ViewGroup.java:4558) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4333) at androidx.constraintlayout.widget.ConstraintLayout.dispatchDraw(ConstraintLayout.java:1765) at android.view.View.updateDisplayListIfDirty(View.java:20736) at android.view.View.draw(View.java:21603) at android.view.ViewGroup.drawChild(ViewGroup.java:4558) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4333) at android.view.View.updateDisplayListIfDirty(View.java:20736) at android.view.View.draw(View.java:21603) at android.view.ViewGroup.drawChild(ViewGroup.java:4558) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4333) at android.view.View.updateDisplayListIfDirty(View.java:20736) at android.view.View.draw(View.java:21603) at android.view.ViewGroup.drawChild(ViewGroup.java:4558) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4333) at android.view.View.updateDisplayListIfDirty(View.java:20736) at android.view.View.draw(View.java:21603) at android.view.ViewGroup.drawChild(ViewGroup.java:4558) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4333) at android.view.View.updateDisplayListIfDirty(View.java:20736) at android.view.View.draw(View.java:21603) at android.view.ViewGroup.drawChild(ViewGroup.java:4558) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4333) at android.view.View.draw(View.java:21880) at com.android.internal.policy.DecorView.draw(DecorView.java:1120) at android.view.View.updateDisplayListIfDirty(View.java:20750) at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:725) at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:731) at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:840) at android.view.ViewRootImpl.draw(ViewRootImpl.java:4006) at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3770) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3079) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1942) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8595) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:988) at android.view.Choreographer.doCallbacks(Choreographer.java:765) at android.view.Choreographer.doFrame(Choreographer.java:700) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:967) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:214)
The idea is to change the color of the icon selected that's why i need to remove the overlay.
Hey,
After using:
<com.cleveroad.loopbar.widget.LoopBarView
android:id="@+id/endlessView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:enls_placeholderId="@id/placeHolder"
app:enls_orientation="horizontal"
app:enls_selectionGravity="start"
app:enls_selectionMargin="10dp"
app:enls_overlaySize="5dp"
app:enls_selectionInAnimation="@animator/enls_scale_restore"
app:enls_selectionOutAnimation="@animator/enls_scale_small"
app:enls_selectionBackground="@android:color/holo_blue_dark"
app:enls_menu="@menu/loopbar"
app:enls_scrollMode="auto"
/>
in my xml.
How do i set onclicklistener on the menu icon in my main activity.
Am really stuck here.
thanks
It would be great if you could set up the LoopBar with a ViewPager and let it behave like TabLayout from the Support Design Library.
Any doubts of seeing this feature in a later version of LoopBar?
How do we change the fonts for tab titles and the text size?
it happened when onSaveInstanceState is excuted.
Process: com.yds.cameratest2, PID: 28978
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.yds.cameratest2/camera.CameraActivity}: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: �����������������
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Caused by: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: �����������������
at android.os.Parcel.readParcelableCreator(Parcel.java:2536)
at android.os.Parcel.readParcelable(Parcel.java:2462)
at android.view.AbsSavedState.(AbsSavedState.java:67)
at android.view.View$BaseSavedState.(View.java:22750)
at android.view.View$BaseSavedState.(View.java:22739)
at com.cleveroad.loopbar.widget.LoopBarView$SavedState.(LoopBarView.java:943)
at com.cleveroad.loopbar.widget.LoopBarView$SavedState.(LoopBarView.java:917)
at com.cleveroad.loopbar.widget.LoopBarView$SavedState$1.createFromParcel(LoopBarView.java:922)
at com.cleveroad.loopbar.widget.LoopBarView$SavedState$1.createFromParcel(LoopBarView.java:919)
at android.os.Parcel.readParcelable(Parcel.java:2471)
at android.os.Parcel.readValue(Parcel.java:2365)
at android.os.Parcel.readSparseArrayInternal(Parcel.java:2813)
at android.os.Parcel.readSparseArray(Parcel.java:2068)
at android.os.Parcel.readValue(Parcel.java:2422)
at android.os.Parcel.readArrayMapInternal(Parcel.java:2732)
at android.os.BaseBundle.unparcel(BaseBundle.java:269)
at android.os.Bundle.getSparseParcelableArray(Bundle.java:934)
at com.android.internal.policy.PhoneWindow.restoreHierarchyState(PhoneWindow.java:2104)
at android.app.Activity.onRestoreInstanceState(Activity.java:1052)
at android.app.Activity.performRestoreInstanceState(Activity.java:1007)
at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1175)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2638)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
When i scroll loopbar, can see all items repetition. How can i fix as 7 menus?
hi
when i resume app, using loopbar app crash:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rahasoft.njf.najafabad/com.rahasoft.njf.najafabad.NewsActivity}: java.lang.RuntimeException: bad array lengths
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2345)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2405)
at android.app.ActivityThread.access$800(ActivityThread.java:149)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1324)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:211)
at android.app.ActivityThread.main(ActivityThread.java:5317)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)
Caused by: java.lang.RuntimeException: bad array lengths
at android.os.Parcel.readBooleanArray(Parcel.java:811)
at com.cleveroad.loopbar.widget.LoopBarView$SavedState.(LoopBarView.java:907)
at com.cleveroad.loopbar.widget.LoopBarView$SavedState.(LoopBarView.java:0)
at com.cleveroad.loopbar.widget.LoopBarView$SavedState$1.createFromParcel(LoopBarView.java:876)
at com.cleveroad.loopbar.widget.LoopBarView$SavedState$1.createFromParcel(LoopBarView.java:873)
at android.os.Parcel.readParcelable(Parcel.java:2277)
at android.os.Parcel.readValue(Parcel.java:2177)
at android.os.Parcel.readSparseArrayInternal(Parcel.java:2571)
at android.os.Parcel.readSparseArray(Parcel.java:1899)
at android.os.Parcel.readValue(Parcel.java:2234)
at android.os.Parcel.readArrayMapInternal(Parcel.java:2510)
at android.os.BaseBundle.unparcel(BaseBundle.java:221)
at android.os.Bundle.getSparseParcelableArray(Bundle.java:871)
at com.android.internal.policy.impl.PhoneWindow.restoreHierarchyState(PhoneWindow.java:1983)
at android.app.Activity.onRestoreInstanceState(Activity.java:1022)
at android.app.Activity.performRestoreInstanceState(Activity.java:977)
at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1161)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2318)
... 10 more
java.lang.RuntimeException: bad array lengths
at android.os.Parcel.readBooleanArray(Parcel.java:811)
at com.cleveroad.loopbar.widget.LoopBarView$SavedState.(LoopBarView.java:907)
at com.cleveroad.loopbar.widget.LoopBarView$SavedState.(LoopBarView.java:0)
at com.cleveroad.loopbar.widget.LoopBarView$SavedState$1.createFromParcel(LoopBarView.java:876)
at com.cleveroad.loopbar.widget.LoopBarView$SavedState$1.createFromParcel(LoopBarView.java:873)
at android.os.Parcel.readParcelable(Parcel.java:2277)
at android.os.Parcel.readValue(Parcel.java:2177)
at android.os.Parcel.readSparseArrayInternal(Parcel.java:2571)
at android.os.Parcel.readSparseArray(Parcel.java:1899)
at android.os.Parcel.readValue(Parcel.java:2234)
at android.os.Parcel.readArrayMapInternal(Parcel.java:2510)
at android.os.BaseBundle.unparcel(BaseBundle.java:221)
at android.os.Bundle.getSparseParcelableArray(Bundle.java:871)
at com.android.internal.policy.impl.PhoneWindow.restoreHierarchyState(PhoneWindow.java:1983)
at android.app.Activity.onRestoreInstanceState(Activity.java:1022)
at android.app.Activity.performRestoreInstanceState(Activity.java:977)
at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1161)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2318)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2405)
at android.app.ActivityThread.access$800(ActivityThread.java:149)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1324)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:211)
at android.app.ActivityThread.main(ActivityThread.java:5317)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)
I ran the sample on my asus zenfone 2 , android 5.0 . When a tab is selected , icon and text of selected tab view blinks around 3 times . I'm not talking about the scale & alpha animation. Also , if I try to move to next fragment by swiping gesture when I am already at last page , icon and text completely dissapears and won't be visible again. Any chance this can be fixed?
Hello @BelooS,
Thanks for great library. This is not issue but have one query. I want to use this lib in my app but there is one condition for it. As iOS they define TabBarViewController for all over the view. I want make same as like iOS. Means tabs all over my app like TabBarViewController.
Can u guide me for this?
Thanks in advance...
I have just watched a thread on stackoverflow, in the Answers section a person recommended this so I was curious to know how am I going to reference in my Xamarin Applications?
Is it possible to only loop items if they exceed screen size.ie
%%1.0%%
2 menu items should not be looped as they do not cover the entire screen size ie 1item to be aligned left & the other aligned right.
%%2.0%%
In most cases of you have 5 menu items then looping should be enable automatically
Can this be possible with the library ?
I want to make the LoopBar Item gravity as center,For now its working for START and END.
Please help me how to achieve this?
how can i have loop bar as vertical with right position? by default loop bar is left side, how can i change that?
When changing the default yellow color of the scrolling list to something else using android:background, the overlay area is colored as well. I suggest to add another attribute that colors the list, and leave android:background transparent.
Workaround for now:
Set android:background="@color/mycolor"
Call loopBarView.setBackgroundColor(getResources().getColor(R.color.transparent));
how can i change white background ?
please see this simple video (320kb)
http://www.mediafire.com/file/rn5zu3hx5qnujdv/video_2017-06-04_15-33-49.mp4
Hi,
I am not sure if it is a bug or that I have done something wrong, but I only configured 2 items in my adapter, using List, with infinite scrolling left at default 'on'. As can be seen from the attached, the ibrary generates additional entries to fill up the strip.
Also, as indicated in the picture, there is a bit of shadow on both edges of the strip, can that be removed?
This was rendered on emulator Nexus X5 api23
regards,
hi
how i can use loopbar in sdk 15? my app is released in min sdk 15 and i now will make chenge my buttom menu and i can't use minsdk 16
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.