精确搜索增加包含关键词的,比如搜索五行 五行天也显示出来, 五天行不显示

pull/1013/head
gedoor 4 years ago
parent d6e3349f8c
commit a91d3d3d30
  1. 2
      app/src/main/java/io/legado/app/ui/book/search/SearchViewModel.kt
  2. 11
      app/src/main/java/io/legado/app/ui/widget/recycler/UpLinearLayoutManager.kt

@ -139,7 +139,7 @@ class SearchViewModel(application: Application) : BaseViewModel(application),
} }
if (!scope.isActive) return if (!scope.isActive) return
equalData.sortByDescending { it.origins.size } equalData.sortByDescending { it.origins.size }
equalData.addAll(containsData) equalData.addAll(containsData.sortedByDescending { it.origins.size })
if (!precision) { if (!precision) {
equalData.addAll(otherData) equalData.addAll(otherData)
} }

@ -17,7 +17,6 @@ class UpLinearLayoutManager(val context: Context) : LinearLayoutManager(context)
scroller.offset = offset scroller.offset = offset
startSmoothScroll(scroller) startSmoothScroll(scroller)
} }
}
class UpLinearSmoothScroller(context: Context?) : LinearSmoothScroller(context) { class UpLinearSmoothScroller(context: Context?) : LinearSmoothScroller(context) {
var offset = 0 var offset = 0
@ -30,10 +29,18 @@ class UpLinearSmoothScroller(context: Context?): LinearSmoothScroller(context) {
return SNAP_TO_START return SNAP_TO_START
} }
override fun calculateDtToFit(viewStart: Int, viewEnd: Int, boxStart: Int, boxEnd: Int, snapPreference: Int): Int { override fun calculateDtToFit(
viewStart: Int,
viewEnd: Int,
boxStart: Int,
boxEnd: Int,
snapPreference: Int
): Int {
if (snapPreference == SNAP_TO_START) { if (snapPreference == SNAP_TO_START) {
return boxStart - viewStart + offset return boxStart - viewStart + offset
} }
throw IllegalArgumentException("snap preference should be SNAP_TO_START") throw IllegalArgumentException("snap preference should be SNAP_TO_START")
} }
} }
}

Loading…
Cancel
Save