diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/BookshelfFragment1.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/BookshelfFragment1.kt index 1e7daf1b8..4a420e30c 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/BookshelfFragment1.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/BookshelfFragment1.kt @@ -130,8 +130,18 @@ class BookshelfFragment1 : BaseBookshelfFragment(R.layout.fragment_bookshelf), return bookGroups[position].groupName } + /** + * 确定视图位置是否更改时调用 + * @return POSITION_NONE 已更改,刷新视图. POSITION_UNCHANGED 未更改,不刷新视图 + */ override fun getItemPosition(`object`: Any): Int { - return POSITION_NONE + val fragment = `object` as BooksFragment + val position = fragment.position + val group = bookGroups[position] + if (fragment.groupId != group.groupId) { + return POSITION_NONE + } + return POSITION_UNCHANGED } override fun getItem(position: Int): Fragment { diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt index d8e578899..17aede8ac 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt @@ -63,10 +63,12 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books), } private var booksFlowJob: Job? = null private var savedInstanceState: Bundle? = null - private var position = 0 - private var groupId = -1L + var position = 0 + private set + var groupId = -1L + private set private var bookSort = 0 - private var upLastUpdateTimeJob : Job? = null + private var upLastUpdateTimeJob: Job? = null override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { this.savedInstanceState = savedInstanceState