diff options
author | Neil Seligmann <git@neilseligmann.com> | 2022-01-06 17:24:04 +0300 |
---|---|---|
committer | Niedermann IT-Dienstleistungen <stefan-niedermann@users.noreply.github.com> | 2022-01-10 11:51:09 +0300 |
commit | 1682885a8b411af2c4387996515a3b24b5c934a0 (patch) | |
tree | 7816e9f94f2cd4211c5bd01a527f8de9babdf367 /app/src/main/java/it/niedermann | |
parent | dfa6f07c1ddab1ad360d898d9dcad94f56186541 (diff) |
feat: improved automatic scrolling
Diffstat (limited to 'app/src/main/java/it/niedermann')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java index bf33bf996..ca9f0f614 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java @@ -14,6 +14,7 @@ import androidx.fragment.app.FragmentActivity; import androidx.lifecycle.LiveData; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import java.util.List; @@ -181,7 +182,14 @@ public class StackFragment extends Fragment implements DragAndDropTab<CardAdapte */ public void scrollToBottom() { activity.runOnUiThread(() -> { - binding.recyclerView.smoothScrollToPosition(adapter.getItemCount()); + LinearLayoutManager layoutManager = (LinearLayoutManager) binding.recyclerView.getLayoutManager(); + int currentItem = layoutManager.findFirstVisibleItemPosition(); + + if (adapter.getItemCount() - currentItem < 40) { + binding.recyclerView.smoothScrollToPosition(adapter.getItemCount()); + } else { + binding.recyclerView.scrollToPosition(adapter.getItemCount() - 1); + } }); } }
\ No newline at end of file |