更新搜索界面
This commit is contained in:
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user