更新搜索界面

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.DefaultItemAnimator
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import androidx.transition.TransitionManager
import com.google.android.flexbox.FlexboxLayoutManager import com.google.android.flexbox.FlexboxLayoutManager
import com.google.android.material.search.SearchBar import com.google.android.material.search.SearchBar
import com.google.android.material.search.SearchView import com.google.android.material.search.SearchView
@@ -181,24 +182,9 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel
private fun initMaterialSearch() { 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 -> searchBar.setOnMenuItemClickListener { item ->
onCompatOptionsItemSelected(item) onCompatOptionsItemSelected(item)
@@ -450,7 +436,8 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel
* 搜索结束 * 搜索结束
*/ */
private fun searchFinally() { private fun searchFinally() {
binding.refreshProgressBar.invisible() TransitionManager.beginDelayedTransition(binding.root)
binding.refreshProgressBar.gone()
binding.cdProgress.gone() binding.cdProgress.gone()
if (!isManualStopSearch && viewModel.hasMore) { if (!isManualStopSearch && viewModel.hasMore) {
binding.fbStartStop.setImageResource(R.drawable.ic_play) binding.fbStartStop.setImageResource(R.drawable.ic_play)
@@ -14,17 +14,15 @@
android:id="@+id/app_bar" android:id="@+id/app_bar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:backgroundTint="?attr/colorSurface" app:liftOnScroll="false"
app:layout_constraintEnd_toEndOf="parent" android:fitsSystemWindows="true"
app:layout_constraintStart_toStartOf="parent" app:statusBarForeground="?attr/colorSurface">
app:layout_constraintTop_toTopOf="parent">
<com.google.android.material.search.SearchBar <com.google.android.material.search.SearchBar
android:id="@+id/search_bar" android:id="@+id/search_bar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/search_book_key" android:hint="@string/search_book_key"
app:layout_scrollFlags="scroll|enterAlways"
app:menu="@menu/book_search" app:menu="@menu/book_search"
app:navigationIcon="@drawable/ic_arrow_back" app:navigationIcon="@drawable/ic_arrow_back"
app:navigationIconTint="?attr/colorOnSurface" /> app:navigationIconTint="?attr/colorOnSurface" />
@@ -47,7 +45,7 @@
android:layout_marginHorizontal="16dp" android:layout_marginHorizontal="16dp"
android:layout_marginVertical="4dp" android:layout_marginVertical="4dp"
android:scaleType="centerCrop" android:scaleType="centerCrop"
android:visibility="gone" android:visibility="invisible"
app:cardBackgroundColor="?attr/colorTertiaryContainer" app:cardBackgroundColor="?attr/colorTertiaryContainer"
app:cardCornerRadius="4dp" app:cardCornerRadius="4dp"
app:strokeWidth="0dp"> app:strokeWidth="0dp">
@@ -77,20 +75,13 @@
android:orientation="vertical" android:orientation="vertical"
android:visibility="visible"/> android:visibility="visible"/>
<io.legato.kazusa.ui.widget.dynamiclayout.DynamicFrameLayout <androidx.recyclerview.widget.RecyclerView
android:id="@+id/content_view" android:id="@+id/recycler_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior"> android:clipToPadding="false"
tools:listitem="@layout/item_search"
<androidx.recyclerview.widget.RecyclerView app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior"/>
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>
<LinearLayout <LinearLayout
android:id="@+id/ll_stop" android:id="@+id/ll_stop"