Add nestedScrollConnection

This commit is contained in:
tarsin committed 2023-06-04 16:38:28 +08:00
1 parent 7efaa64562
commit e25227e39d
4 files changed
+17 -3

No files matched your search

@@ -12,9 +12,11 @@ import androidx.compose.material3.IconButton
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.SpanStyle
@@ -27,6 +29,7 @@ import com.hippo.ehviewer.ui.login.LocalNavController
@Composable
fun AboutScreen() {
val navController = LocalNavController.current
val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior()
Scaffold(
topBar = {
TopAppBar(
@@ -36,10 +39,11 @@ fun AboutScreen() {
Icon(imageVector = Icons.Default.ArrowBack, contentDescription = null)
}
},
scrollBehavior = scrollBehavior,
)
},
) {
Column(modifier = Modifier.padding(it)) {
Column(modifier = Modifier.padding(it).nestedScroll(scrollBehavior.nestedScrollConnection)) {
Preference(title = stringResource(id = R.string.settings_about_declaration), summary = stringResource(id = R.string.settings_about_declaration_summary))
val author = stringResource(R.string.settings_about_author_summary).replace('$', '@').let {
fun Spanned.toAnnotatedString(): AnnotatedString = buildAnnotatedString {
@@ -14,8 +14,10 @@ import androidx.compose.material3.IconButton
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
@@ -24,6 +26,7 @@ import com.hippo.ehviewer.R
@Composable
fun BaseScreen() {
val activity = LocalContext.current as Activity
val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior()
Scaffold(
topBar = {
TopAppBar(
@@ -33,10 +36,11 @@ fun BaseScreen() {
Icon(imageVector = Icons.Default.ArrowBack, contentDescription = null)
}
},
scrollBehavior = scrollBehavior,
)
},
) {
Column(modifier = Modifier.padding(it)) {
Column(modifier = Modifier.padding(it).nestedScroll(scrollBehavior.nestedScrollConnection)) {
PreferenceHeader(
icon = painterResource(id = R.drawable.v_sad_panda_primary_x24),
title = R.string.settings_eh,
@@ -9,8 +9,10 @@ import androidx.compose.material3.IconButton
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.res.stringResource
import com.hippo.ehviewer.R
import com.hippo.ehviewer.ui.login.LocalNavController
@@ -19,6 +21,7 @@ import com.mikepenz.aboutlibraries.ui.compose.LibrariesContainer
@Composable
fun LicenseScreen() {
val navController = LocalNavController.current
val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior()
Scaffold(
topBar = {
TopAppBar(
@@ -28,9 +31,10 @@ fun LicenseScreen() {
Icon(imageVector = Icons.Default.ArrowBack, contentDescription = null)
}
},
scrollBehavior = scrollBehavior,
)
},
) {
LibrariesContainer(modifier = Modifier.fillMaxSize().padding(it))
LibrariesContainer(modifier = Modifier.fillMaxSize().padding(it).nestedScroll(scrollBehavior.nestedScrollConnection))
}
}
@@ -2,6 +2,7 @@ package com.hippo.ehviewer.ui.settings
import android.os.Bundle
import androidx.compose.runtime.CompositionLocalProvider
import androidx.core.view.WindowCompat
import androidx.navigation.ActivityNavigator
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
@@ -13,6 +14,7 @@ import com.hippo.ehviewer.ui.login.LocalNavController
class SettingsActivity : EhActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
WindowCompat.setDecorFitsSystemWindows(window, false)
setMD3Content {
val navController = rememberNavController()