diff --git a/app/src/main/kotlin/androidx/swiperefreshlayout/widget/ThemedSwipeRefreshLayout.kt b/app/src/main/kotlin/androidx/swiperefreshlayout/widget/ThemedSwipeRefreshLayout.kt
index c1ab431c8..58d16d66c 100644
--- a/app/src/main/kotlin/androidx/swiperefreshlayout/widget/ThemedSwipeRefreshLayout.kt
+++ b/app/src/main/kotlin/androidx/swiperefreshlayout/widget/ThemedSwipeRefreshLayout.kt
@@ -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? {
diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/legacy/SearchLayout.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/legacy/SearchLayout.kt
index 45f4be69d..c0aa75c95 100644
--- a/app/src/main/kotlin/com/hippo/ehviewer/ui/legacy/SearchLayout.kt
+++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/legacy/SearchLayout.kt
@@ -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))) {
diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/DownloadsScene.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/DownloadsScene.kt
index e5cda39b9..b0c121dd8 100644
--- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/DownloadsScene.kt
+++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/DownloadsScene.kt
@@ -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) {
diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/FavoritesScene.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/FavoritesScene.kt
index d4d35e3b1..a54852047 100644
--- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/FavoritesScene.kt
+++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/FavoritesScene.kt
@@ -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)
diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryListScene.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryListScene.kt
index 34e90582f..7edac0937 100644
--- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryListScene.kt
+++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryListScene.kt
@@ -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
diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/SearchBarScene.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/SearchBarScene.kt
index 51babebac..b477abb2f 100644
--- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/SearchBarScene.kt
+++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/SearchBarScene.kt
@@ -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)
}
}
}
diff --git a/app/src/main/res/layout/scene_download.xml b/app/src/main/res/layout/scene_download.xml
index 01484d63e..4177f0afa 100644
--- a/app/src/main/res/layout/scene_download.xml
+++ b/app/src/main/res/layout/scene_download.xml
@@ -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">
diff --git a/app/src/main/res/layout/widget_content_layout.xml b/app/src/main/res/layout/widget_content_layout.xml
index afe053012..55d0128e7 100644
--- a/app/src/main/res/layout/widget_content_layout.xml
+++ b/app/src/main/res/layout/widget_content_layout.xml
@@ -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">
+ android:layout_height="match_parent">