更新搜索界面

This commit is contained in:
HapeLee
2025-10-19 13:53:52 +08:00
parent 1b20329228
commit b8082b5335
2 changed files with 13 additions and 35 deletions
@@ -18,6 +18,7 @@ import androidx.lifecycle.repeatOnLifecycle
import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import androidx.transition.TransitionManager
import com.google.android.flexbox.FlexboxLayoutManager
import com.google.android.material.search.SearchBar
import com.google.android.material.search.SearchView
@@ -181,24 +182,9 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel
private fun initMaterialSearch() {
binding.appBar.applyStatusBarPadding()
binding.appBar.post {
val maxPaddingTop = binding.appBar.paddingTop
binding.appBar.addOnOffsetChangedListener { appBarLayout, verticalOffset ->
val totalScrollRange = appBarLayout.totalScrollRange
val scrollRatio =
(1f - (abs(verticalOffset).toFloat() / totalScrollRange)).coerceIn(0f, 1f)
appBarLayout.alpha = scrollRatio
appBarLayout.setPadding(
appBarLayout.paddingLeft,
(maxPaddingTop * scrollRatio).toInt(),
appBarLayout.paddingRight,
appBarLayout.paddingBottom
)
}
}
searchBar.setOnMenuItemClickListener { item ->
onCompatOptionsItemSelected(item)
@@ -450,7 +436,8 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel
* 搜索结束
*/
private fun searchFinally() {
binding.refreshProgressBar.invisible()
TransitionManager.beginDelayedTransition(binding.root)
binding.refreshProgressBar.gone()
binding.cdProgress.gone()
if (!isManualStopSearch && viewModel.hasMore) {
binding.fbStartStop.setImageResource(R.drawable.ic_play)
@@ -14,17 +14,15 @@
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="?attr/colorSurface"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
app:liftOnScroll="false"
android:fitsSystemWindows="true"
app:statusBarForeground="?attr/colorSurface">
<com.google.android.material.search.SearchBar
android:id="@+id/search_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/search_book_key"
app:layout_scrollFlags="scroll|enterAlways"
app:menu="@menu/book_search"
app:navigationIcon="@drawable/ic_arrow_back"
app:navigationIconTint="?attr/colorOnSurface" />
@@ -47,7 +45,7 @@
android:layout_marginHorizontal="16dp"
android:layout_marginVertical="4dp"
android:scaleType="centerCrop"
android:visibility="gone"
android:visibility="invisible"
app:cardBackgroundColor="?attr/colorTertiaryContainer"
app:cardCornerRadius="4dp"
app:strokeWidth="0dp">
@@ -77,20 +75,13 @@
android:orientation="vertical"
android:visibility="visible"/>
<io.legato.kazusa.ui.widget.dynamiclayout.DynamicFrameLayout
android:id="@+id/content_view"
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
tools:listitem="@layout/item_search" />
</io.legato.kazusa.ui.widget.dynamiclayout.DynamicFrameLayout>
android:clipToPadding="false"
tools:listitem="@layout/item_search"
app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior"/>
<LinearLayout
android:id="@+id/ll_stop"