Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

`RecycleView` with `viewclass` using dynamic `height` is not smooth #6582

Open
goffi-contrib opened this issue Nov 2, 2019 · 1 comment

Comments

@goffi-contrib
Copy link

@goffi-contrib goffi-contrib commented Nov 2, 2019

Versions

  • Python: 3.7.4
  • OS: Arch Linux
  • Kivy: v2.0.0.dev0, git-7947abf, 20191025
  • Kivy installation method: pip install --user git+https://github.com/kivy/kivy.git

Description`

When using RecycleView with a viewclass using dynamic height, the scrolling is "jumping", it's not smooth at all. Each time a new item appears on screen, there is a little "jump" (the scroll bar is going in the opposite direction then the right size is set), which is really bad when scrolling many items at once. Once the entire list of data has been scrolled once, the next time we scroll it is smooth as expected.

This bug is related to #6580 but it's a different issue.

Code and Logs

from kivy.app import App
from kivy.lang import Builder

KV = '''
<CustomView@BoxLayout>:
    size_hint: 1, None
    text: ''
    Label:
        id: test_label
        size_hint: 1, None
        on_size: root.height = self.height
        text_size: root.width, None
        size: self.texture_size
        text: root.text


RecycleView:
    viewclass: 'CustomView'
    data: [{"text": f"{i} {'test'*i}"} for i in range(300)]
    scroll_y: 0
    RecycleBoxLayout:
        id: layout
        default_size: None, None
        default_size_hint: 1, None
        size_hint_y: None
        height: self.minimum_height
        orientation: 'vertical'
'''

class TestApp(App):
    def build(self):
        return Builder.load_string(KV)

if __name__ == '__main__':
    TestApp().run()

This script is displaying a 300 BoxLayout containing a Label were text is growing on purpose (to augment the height of each item).
expected result: when you scroll the RecycleView, the scrolling should me smooth, quick, and nice looking
actual result: there are jumps on each items. If you scroll slowly, you can notice clearly that the jump happen when a new item appears in the view. If you scroll quickly, there are many jumps and the scrolling is not smooth at all. Once the entire list has been scrolled once, everything is smooth as expected.

@yunus-ceyhan

This comment has been minimized.

Copy link

@yunus-ceyhan yunus-ceyhan commented Nov 2, 2019

Once i tried to dinamically resizing the height of each item in recyclewiev for one of my project but got the same result as you described. its not smooth unlees once the scroll is being complated. i hope there is a solutuon for this annoying issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.