Comments (16)
@albka1986 for that use case, you need custom touch event handling. It's not possible to scroll one item only. For that, you need PagerSnapHelper. Check this StackOverflow question: https://stackoverflow.com/questions/53483268/how-to-have-recyclerview-snapped-to-center-and-yet-be-able-to-scroll-to-all-item/53510142#53510142
from gravitysnaphelper.
This would require another custom SnapHelper. I don't have any plans to implement this, though.
from gravitysnaphelper.
Too bad. Thanks anyway
from gravitysnaphelper.
@AndroidDeveloperLB , I'm adding something similar in 2.2.0. It'll not be exactly snapping on X views, but instead limiting the fling distance.
You can check this out here: https://github.com/rubensousa/RecyclerViewSnap/blob/develop/gravitysnaphelper/src/main/java/com/github/rubensousa/gravitysnaphelper/GravitySnapHelper.java#L293
You'll also be able to customise the snap speed:
https://github.com/rubensousa/RecyclerViewSnap/blob/develop/gravitysnaphelper/src/main/java/com/github/rubensousa/gravitysnaphelper/GravitySnapHelper.java#L331
from gravitysnaphelper.
Check this issue: #29
from gravitysnaphelper.
Why close it if it's not the same?
Can you please post a video of what was added?
from gravitysnaphelper.
It's not released yet, but it's in the develop branch if you want to check it out.
I closed the issue again since it's not really what you asked for, although it's similar. That's why I linked the other issue.
Here's a preview: https://drive.google.com/file/d/1vbJ5jz39cCcVgWIeGRv5vWF5ESOglDCr/view
from gravitysnaphelper.
It's not the same?
But if it's not the same, why close it?
I'm confused.
from gravitysnaphelper.
I closed it since I don't have plans to work on this specific feature at the moment. You closed this the last time because of that same reason
from gravitysnaphelper.
Sorry I don't remember.
Anyway, you added something that seem what I wrote, no? What's the difference between what I requested and what you've added?
from gravitysnaphelper.
You wanted to snap every X views, however I've added support for limiting the maximum fling according to a value you can set through: https://github.com/rubensousa/RecyclerViewSnap/blob/decfb4102dcd8d741cce65f88e2d82e768d840b7/gravitysnaphelper/src/main/java/com/github/rubensousa/gravitysnaphelper/GravitySnapHelper.java#L274
And https://github.com/rubensousa/RecyclerViewSnap/blob/decfb4102dcd8d741cce65f88e2d82e768d840b7/gravitysnaphelper/src/main/java/com/github/rubensousa/gravitysnaphelper/GravitySnapHelper.java#L289
Limiting snapping on every X view is different, since you may have views with different width.
from gravitysnaphelper.
Oh right.
Sorry for that.
Why not consider adding this functionality ?
It could be nice, for example, for a week view of a calendar app (shows a single week each time)
from gravitysnaphelper.
Because it requires time I don't have at the moment. However, I could leave this open so that anyone else could work on this instead. Meanwhile, If you need something similar, you could use the other approach.
from gravitysnaphelper.
OK please let it be open, then.
from gravitysnaphelper.
@rubensousa
Hello! Thanks for the lib it's very helpful.
I have a question about the feature "every x" I understand that you provided some another feature, but I try to use it and don't have a profit.
Here is my config:
val snapHelper = GravitySnapHelper(Gravity.CENTER).apply {
scrollMsPerInch = 1f
maxFlingDistance = 20.dp.toPx()
maxFlingSizeFraction = 0.0001f
}
snapHelper.attachToRecyclerView(recyclerView)
snapHelper.scrollToPosition(Int.MAX_VALUE/2)
My view in XML:
<com.github.rubensousa.gravitysnaphelper.GravitySnapRecyclerView
android:id="@+id/camera_type_rv"
android:layout_width="match_parent"
android:layout_height="25dp"
android:layout_marginStart="40dp"
app:snapMaxFlingSizeFraction="0.1"
android:layout_marginEnd="40dp"
app:snapGravity="center"
android:layout_marginBottom="100dp"
android:animateLayoutChanges="false"
android:orientation="horizontal"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:itemCount="3" />
My goal is to go through the list one by one.
But if it's impossible by this lib, I try to set slow speed of scrolling and it doesn't work with method scrollMsPerInch
.
This is my current implementation:
https://drive.google.com/file/d/1GuraO_nDQR8IE1jzjZyZ51eyiOzfXlOb/view?usp=sharing
That is what I want to have:
https://drive.google.com/file/d/19k8MFVK69Xiorw1LErUgLt7-wEAQ0fat/view?usp=sharing
from gravitysnaphelper.
Thanks
from gravitysnaphelper.
Related Issues (20)
- GridLayoutManager.SpanSizeLookup is not considered HOT 1
- Show the vertical recyclerview below the horizontal HOT 3
- Question: how to snap right away, and also while allowing first&last items to also be in center? HOT 16
- a GravityPagerSnapHelper snap bug in version 1.5 HOT 6
- GravitySnapHelper dont return the first position when the user scroll at (0,0) position HOT 1
- GravitySnapHelper ignores RecyclerView padding in 2.0 HOT 4
- 222 HOT 1
- how set adapter for that HOT 1
- the first item cannot snap to center HOT 2
- Any help on having a Carousel Effect in this? HOT 1
- GravitySnapHelper.SnapListener not callback when scroll to first position. HOT 7
- can not scroll to the top position when call smoothScrollToPosition(0)
- Gravity.BOTTOM with margin HOT 1
- Does this can work like PagerSnapHelper HOT 7
- Library artifacts are published to jcenter only, which will close in 3 months HOT 1
- how to make hightlight snap item center
- Could not download package HOT 2
- Snap with decoration
- IllegalArgumentException when setting snapGravity to center HOT 3
- Prevent snap on items which are bigger than the viewport
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gravitysnaphelper.