Fix recyclerview item disappearing
This commit is contained in:
1 parent
11b7bbd7ef
commit
c8ade4d750
8 files changed
+18
-20
No files matched your search
@@ -6,6 +6,7 @@ import android.graphics.drawable.ShapeDrawable
|
||||
import android.os.Parcelable
|
||||
import android.util.AttributeSet
|
||||
import androidx.core.graphics.ColorUtils
|
||||
import eu.kanade.tachiyomi.util.system.dpToPx
|
||||
import rikka.core.res.resolveColor
|
||||
|
||||
@SuppressLint("PrivateResource")
|
||||
@@ -22,6 +23,7 @@ class ThemedSwipeRefreshLayout @JvmOverloads constructor(
|
||||
val backgroundColor = ColorUtils.compositeColors(overlayColor, surfaceColor)
|
||||
(mCircleView.background as ShapeDrawable).paint.color = backgroundColor
|
||||
setColorSchemeColors(context.theme.resolveColor(com.google.android.material.R.attr.colorAccent))
|
||||
setProgressViewOffset(true, 64.dpToPx, 128.dpToPx)
|
||||
}
|
||||
|
||||
override fun onSaveInstanceState(): Parcelable? {
|
||||
|
||||
@@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.imePadding
|
||||
import androidx.compose.foundation.layout.navigationBarsPadding
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.statusBarsPadding
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material3.ElevatedCard
|
||||
@@ -32,6 +33,7 @@ import androidx.compose.ui.platform.AbstractComposeView
|
||||
import androidx.compose.ui.res.dimensionResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.findViewTreeViewModelStoreOwner
|
||||
@@ -81,7 +83,10 @@ class SearchLayout @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
Mdc3Theme {
|
||||
Column(modifier = Modifier.imePadding().verticalScroll(rememberScrollState()).navigationBarsPadding().padding(horizontal = dimensionResource(id = R.dimen.search_layout_margin_h))) {
|
||||
Column(
|
||||
modifier = Modifier.imePadding().statusBarsPadding().padding(top = 72.dp)
|
||||
.verticalScroll(rememberScrollState()).navigationBarsPadding().padding(horizontal = dimensionResource(id = R.dimen.search_layout_margin_h)),
|
||||
) {
|
||||
AnimatedVisibility(visible = vm.isNormalMode) {
|
||||
ElevatedCard(modifier = Modifier.fillMaxWidth().padding(vertical = dimensionResource(id = R.dimen.search_layout_margin_v))) {
|
||||
Column(modifier = Modifier.padding(horizontal = dimensionResource(id = R.dimen.search_category_padding_h), vertical = dimensionResource(id = R.dimen.search_category_padding_v))) {
|
||||
|
||||
@@ -296,8 +296,6 @@ class DownloadsScene :
|
||||
layoutManager.setStrategy(STRATEGY_MIN_SIZE)
|
||||
layoutManager.supportsPredictiveItemAnimations = false
|
||||
recyclerView.layoutManager = layoutManager
|
||||
recyclerView.clipToPadding = false
|
||||
recyclerView.clipChildren = false
|
||||
val interval = resources.getDimensionPixelOffset(R.dimen.gallery_list_interval)
|
||||
val decoration = object : RecyclerView.ItemDecoration() {
|
||||
override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State) {
|
||||
|
||||
@@ -89,7 +89,6 @@ import com.hippo.ehviewer.util.lazyMut
|
||||
import com.hippo.ehviewer.util.setValue
|
||||
import eu.kanade.tachiyomi.util.lang.launchIO
|
||||
import eu.kanade.tachiyomi.util.lang.withIOContext
|
||||
import eu.kanade.tachiyomi.util.system.dpToPx
|
||||
import java.time.Instant
|
||||
import java.time.LocalDateTime
|
||||
import java.time.ZoneId
|
||||
@@ -329,7 +328,6 @@ class FavoritesScene : SearchBarScene() {
|
||||
drawable.setBounds(0, 0, drawable.intrinsicWidth, drawable.intrinsicHeight)
|
||||
binding.tip.setCompoundDrawables(null, drawable, null, null)
|
||||
binding.tip.setOnClickListener { mAdapter?.retry() }
|
||||
binding.refreshLayout.setProgressViewOffset(true, 0, 64.dpToPx)
|
||||
binding.refreshLayout.setOnRefreshListener { switchFav(urlBuilder.favCat) }
|
||||
val transition = ViewTransition(binding.refreshLayout, binding.progress, binding.tip)
|
||||
val empty = getString(R.string.gallery_list_empty_hit)
|
||||
|
||||
@@ -102,7 +102,6 @@ import com.hippo.ehviewer.util.setValue
|
||||
import eu.kanade.tachiyomi.util.lang.launchIO
|
||||
import eu.kanade.tachiyomi.util.lang.withIOContext
|
||||
import eu.kanade.tachiyomi.util.lang.withUIContext
|
||||
import eu.kanade.tachiyomi.util.system.dpToPx
|
||||
import java.io.File
|
||||
import java.time.Instant
|
||||
import java.time.LocalDateTime
|
||||
@@ -321,7 +320,6 @@ class GalleryListScene : SearchBarScene() {
|
||||
drawable.setBounds(0, 0, drawable.intrinsicWidth, drawable.intrinsicHeight)
|
||||
binding.tip.setCompoundDrawables(null, drawable, null, null)
|
||||
binding.tip.setOnClickListener { mAdapter?.retry() }
|
||||
binding.refreshLayout.setProgressViewOffset(true, 0, 64.dpToPx)
|
||||
binding.refreshLayout.setOnRefreshListener {
|
||||
mUrlBuilder.setIndex(null, true)
|
||||
mUrlBuilder.mJumpTo = null
|
||||
|
||||
@@ -14,9 +14,9 @@ import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
import androidx.compose.foundation.layout.asPaddingValues
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.imePadding
|
||||
import androidx.compose.foundation.layout.ime
|
||||
import androidx.compose.foundation.layout.navigationBars
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.union
|
||||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.foundation.text2.input.clearText
|
||||
@@ -265,8 +265,7 @@ fun SearchBarScreen(
|
||||
},
|
||||
) {
|
||||
LazyColumn(
|
||||
modifier = Modifier.imePadding(),
|
||||
contentPadding = WindowInsets.navigationBars.asPaddingValues(),
|
||||
contentPadding = WindowInsets.navigationBars.union(WindowInsets.ime).asPaddingValues(),
|
||||
) {
|
||||
items(mSuggestionList) {
|
||||
ListItem(
|
||||
@@ -339,6 +338,7 @@ abstract class SearchBarScene : BaseScene() {
|
||||
return ComposeWithMD3 {
|
||||
val density = LocalDensity.current
|
||||
val fabPadding = with(density) { 16.dp.roundToPx() }
|
||||
val margin = with(density) { 8.dp.roundToPx() }
|
||||
SearchBarScreen(
|
||||
initialQuery = initialQuery,
|
||||
hint = hint,
|
||||
@@ -352,19 +352,19 @@ abstract class SearchBarScene : BaseScene() {
|
||||
TrailingIcon()
|
||||
},
|
||||
) { contentPadding ->
|
||||
val topPadding = with(density) { contentPadding.calculateTopPadding().roundToPx() }
|
||||
val bottomPadding = with(density) { contentPadding.calculateBottomPadding().roundToPx() }
|
||||
AndroidViewBinding(
|
||||
modifier = Modifier.padding(top = contentPadding.calculateTopPadding()).fillMaxSize(),
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
factory = { inflater, parent, _ ->
|
||||
parent.clipChildren = false
|
||||
onCreateViewWithToolbar(inflater, parent, savedInstanceState).apply {
|
||||
recyclerView.addOnScrollListener(onScrollListener)
|
||||
}
|
||||
},
|
||||
) {
|
||||
fabLayout.updatePadding(bottom = fabPadding + bottomPadding)
|
||||
fastScroller.updatePadding(bottom = bottomPadding)
|
||||
recyclerView.updatePadding(bottom = bottomPadding)
|
||||
fastScroller.updatePadding(top = topPadding + margin, bottom = bottomPadding)
|
||||
recyclerView.updatePadding(top = topPadding + margin, bottom = bottomPadding)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,13 +21,13 @@
|
||||
android:id="@+id/content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipChildren="false"
|
||||
app:layout_behavior="@string/searchbar_scrolling_view_behavior">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipToPadding="false"
|
||||
android:paddingHorizontal="@dimen/gallery_list_margin_h"
|
||||
android:paddingVertical="@dimen/gallery_list_margin_v" />
|
||||
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
android:id="@+id/content_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipChildren="false"
|
||||
app:layout_behavior="@string/searchbar_scrolling_view_behavior">
|
||||
|
||||
<com.google.android.material.progressindicator.CircularProgressIndicator
|
||||
@@ -41,14 +40,12 @@
|
||||
<androidx.swiperefreshlayout.widget.ThemedSwipeRefreshLayout
|
||||
android:id="@+id/refresh_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipChildren="false">
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipChildren="false"
|
||||
android:clipToPadding="false"
|
||||
android:paddingHorizontal="@dimen/gallery_list_margin_h"
|
||||
android:paddingVertical="@dimen/gallery_list_margin_v" />
|
||||
|
||||
Reference in new issue
Block a user