文件夹样式快速滚动条 #300

This commit is contained in:
HapeLee
2025-11-13 20:34:24 +08:00
parent 1335678664
commit d512800d8e
2 changed files with 28 additions and 6 deletions
@@ -5,6 +5,7 @@ import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.view.View
import android.view.ViewConfiguration
import androidx.activity.OnBackPressedCallback
import androidx.appcompat.widget.SearchView
import androidx.core.app.ActivityOptionsCompat
@@ -144,6 +145,7 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
}
private fun initRecyclerView() {
upFastScrollerBar()
binding.refreshLayout.setOnRefreshListener {
val books = booksAdapter.getBookItems()
val refreshList = if (AppConfig.bookshelfRefreshingLimit > 0) {
@@ -188,6 +190,17 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
}
}
private fun upFastScrollerBar() {
val showBookshelfFastScroller = AppConfig.showBookshelfFastScroller
binding.rvBookshelf.setFastScrollEnabled(showBookshelfFastScroller)
if (showBookshelfFastScroller) {
binding.rvBookshelf.scrollBarSize = 0
} else {
binding.rvBookshelf.scrollBarSize =
ViewConfiguration.get(requireContext()).scaledScrollBarSize
}
}
override fun upGroup(data: List<BookGroup>) {
if (data != bookGroups) {
bookGroups = data
@@ -39,18 +39,27 @@
android:id="@+id/refresh_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingHorizontal="8dp"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_bookshelf"
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
tools:listitem="@layout/item_bookshelf_list" />
android:layout_height="match_parent">
<io.legado.app.ui.widget.recycler.scroller.FastScrollRecyclerView
android:id="@+id/rv_bookshelf"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<io.legado.app.ui.widget.recycler.scroller.FastScroller
android:id="@+id/fast_scroller"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="end" />
</FrameLayout>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<TextView
android:id="@+id/tv_empty_msg"
android:layout_width="wrap_content"