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

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. 35
      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,23 +17,30 @@ 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
override fun getVerticalSnapPreference(): Int { override fun getVerticalSnapPreference(): Int {
return SNAP_TO_START return SNAP_TO_START
} }
override fun getHorizontalSnapPreference(): Int { override fun getHorizontalSnapPreference(): Int {
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(
if (snapPreference == SNAP_TO_START) { viewStart: Int,
return boxStart - viewStart + offset viewEnd: Int,
boxStart: Int,
boxEnd: Int,
snapPreference: Int
): Int {
if (snapPreference == SNAP_TO_START) {
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