pref: 迁移至 Foundation.Pager
This commit is contained in:
parent
7d8c7ed3e6
commit
15e9b747d9
|
|
@ -148,9 +148,6 @@ dependencies {
|
|||
implementation "com.google.accompanist:accompanist-insets-ui:$accompanist_version"
|
||||
implementation "com.google.accompanist:accompanist-systemuicontroller:$accompanist_version"
|
||||
implementation "com.google.accompanist:accompanist-placeholder-material:$accompanist_version"
|
||||
implementation "com.google.accompanist:accompanist-pager:$accompanist_version"
|
||||
implementation "com.google.accompanist:accompanist-pager-indicators:$accompanist_version"
|
||||
implementation "com.google.accompanist:accompanist-swiperefresh:$accompanist_version"
|
||||
implementation "com.google.accompanist:accompanist-webview:$accompanist_version"
|
||||
|
||||
def sketch_version = "3.2.0"
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import android.graphics.Typeface
|
|||
import android.net.Uri
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.animation.core.animateFloatAsState
|
||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.foundation.interaction.PressInteraction
|
||||
|
|
@ -25,6 +26,8 @@ import androidx.compose.foundation.layout.padding
|
|||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||
import androidx.compose.foundation.pager.HorizontalPager
|
||||
import androidx.compose.foundation.pager.rememberPagerState
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.ButtonDefaults
|
||||
|
|
@ -75,9 +78,6 @@ import androidx.datastore.preferences.core.intPreferencesKey
|
|||
import com.germainkevin.collapsingtopbar.CollapsingTopBar
|
||||
import com.germainkevin.collapsingtopbar.CollapsingTopBarDefaults
|
||||
import com.germainkevin.collapsingtopbar.rememberCollapsingTopBarScrollBehavior
|
||||
import com.google.accompanist.pager.ExperimentalPagerApi
|
||||
import com.google.accompanist.pager.HorizontalPager
|
||||
import com.google.accompanist.pager.rememberPagerState
|
||||
import com.google.accompanist.placeholder.PlaceholderHighlight
|
||||
import com.google.accompanist.placeholder.material.fade
|
||||
import com.google.accompanist.placeholder.material.placeholder
|
||||
|
|
@ -347,7 +347,7 @@ private suspend fun sendToDesktop(
|
|||
)
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalPagerApi::class, ExperimentalTextApi::class)
|
||||
@OptIn(ExperimentalTextApi::class, ExperimentalFoundationApi::class)
|
||||
@Destination(
|
||||
deepLinks = [
|
||||
DeepLink(uriPattern = "tblite://forum/{forumName}")
|
||||
|
|
@ -815,7 +815,7 @@ fun ForumPage(
|
|||
Column(modifier = Modifier.padding(contentPadding)) {
|
||||
if (forum != null) {
|
||||
HorizontalPager(
|
||||
count = 2,
|
||||
pageCount = 2,
|
||||
state = pagerState,
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
verticalAlignment = Alignment.Top,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
package com.huanchengfly.tieba.post.ui.page.history
|
||||
|
||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.pager.HorizontalPager
|
||||
import androidx.compose.foundation.pager.rememberPagerState
|
||||
import androidx.compose.material.Icon
|
||||
import androidx.compose.material.IconButton
|
||||
import androidx.compose.material.Tab
|
||||
|
|
@ -20,9 +23,6 @@ import androidx.compose.ui.platform.LocalContext
|
|||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.google.accompanist.pager.ExperimentalPagerApi
|
||||
import com.google.accompanist.pager.HorizontalPager
|
||||
import com.google.accompanist.pager.rememberPagerState
|
||||
import com.huanchengfly.tieba.post.R
|
||||
import com.huanchengfly.tieba.post.ui.common.theme.compose.ExtendedTheme
|
||||
import com.huanchengfly.tieba.post.ui.page.ProvideNavigator
|
||||
|
|
@ -39,7 +39,7 @@ import com.ramcosta.composedestinations.navigation.DestinationsNavigator
|
|||
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@OptIn(ExperimentalPagerApi::class)
|
||||
@OptIn(ExperimentalFoundationApi::class)
|
||||
@Destination(
|
||||
deepLinks = [
|
||||
DeepLink(uriPattern = "tblite://history")
|
||||
|
|
@ -141,7 +141,7 @@ fun HistoryPage(
|
|||
) {
|
||||
ProvideNavigator(navigator = navigator) {
|
||||
HorizontalPager(
|
||||
count = 2,
|
||||
pageCount = 2,
|
||||
state = pagerState,
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
verticalAlignment = Alignment.Top,
|
||||
|
|
|
|||
|
|
@ -2,10 +2,13 @@ package com.huanchengfly.tieba.post.ui.page.main
|
|||
|
||||
import androidx.activity.compose.BackHandler
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.fillMaxHeight
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.pager.HorizontalPager
|
||||
import androidx.compose.foundation.pager.rememberPagerState
|
||||
import androidx.compose.material.Scaffold
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.outlined.AccountCircle
|
||||
|
|
@ -27,9 +30,6 @@ import androidx.compose.ui.graphics.vector.ImageVector
|
|||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.res.vectorResource
|
||||
import com.google.accompanist.pager.ExperimentalPagerApi
|
||||
import com.google.accompanist.pager.HorizontalPager
|
||||
import com.google.accompanist.pager.rememberPagerState
|
||||
import com.huanchengfly.tieba.post.LocalNotificationCountFlow
|
||||
import com.huanchengfly.tieba.post.R
|
||||
import com.huanchengfly.tieba.post.arch.BaseComposeActivity.Companion.LocalWindowSizeClass
|
||||
|
|
@ -91,7 +91,7 @@ private fun NavigationWrapper(
|
|||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalPagerApi::class)
|
||||
@OptIn(ExperimentalFoundationApi::class)
|
||||
@RootNavGraph(start = true)
|
||||
@Destination
|
||||
@Composable
|
||||
|
|
@ -243,7 +243,7 @@ fun MainPage(
|
|||
) { paddingValues ->
|
||||
HorizontalPager(
|
||||
contentPadding = paddingValues,
|
||||
count = navigationItems.size,
|
||||
pageCount = navigationItems.size,
|
||||
state = pagerState,
|
||||
key = { navigationItems[it].title },
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
package com.huanchengfly.tieba.post.ui.page.main.explore
|
||||
|
||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.pager.HorizontalPager
|
||||
import androidx.compose.foundation.pager.rememberPagerState
|
||||
import androidx.compose.material.Scaffold
|
||||
import androidx.compose.material.Tab
|
||||
import androidx.compose.material.TabRow
|
||||
|
|
@ -17,9 +20,6 @@ import androidx.compose.ui.graphics.Color
|
|||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.google.accompanist.pager.ExperimentalPagerApi
|
||||
import com.google.accompanist.pager.HorizontalPager
|
||||
import com.google.accompanist.pager.rememberPagerState
|
||||
import com.huanchengfly.tieba.post.R
|
||||
import com.huanchengfly.tieba.post.activities.NewSearchActivity
|
||||
import com.huanchengfly.tieba.post.arch.onEvent
|
||||
|
|
@ -39,7 +39,7 @@ import kotlinx.coroutines.flow.MutableSharedFlow
|
|||
import kotlinx.coroutines.launch
|
||||
|
||||
|
||||
@OptIn(ExperimentalPagerApi::class)
|
||||
@OptIn(ExperimentalFoundationApi::class)
|
||||
@Composable
|
||||
fun ExplorePage(
|
||||
eventFlow: Flow<MainUiEvent>,
|
||||
|
|
@ -127,7 +127,7 @@ fun ExplorePage(
|
|||
) { paddingValues ->
|
||||
HorizontalPager(
|
||||
contentPadding = paddingValues,
|
||||
count = pages.size,
|
||||
pageCount = pages.size,
|
||||
state = pagerState,
|
||||
key = { pages[it].first },
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
package com.huanchengfly.tieba.post.ui.page.main.notifications
|
||||
|
||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.pager.HorizontalPager
|
||||
import androidx.compose.foundation.pager.rememberPagerState
|
||||
import androidx.compose.material.Scaffold
|
||||
import androidx.compose.material.Tab
|
||||
import androidx.compose.material.TabRow
|
||||
|
|
@ -14,9 +17,6 @@ import androidx.compose.ui.Modifier
|
|||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import com.google.accompanist.pager.ExperimentalPagerApi
|
||||
import com.google.accompanist.pager.HorizontalPager
|
||||
import com.google.accompanist.pager.rememberPagerState
|
||||
import com.huanchengfly.tieba.post.R
|
||||
import com.huanchengfly.tieba.post.activities.NewSearchActivity
|
||||
import com.huanchengfly.tieba.post.goToActivity
|
||||
|
|
@ -29,7 +29,7 @@ import com.huanchengfly.tieba.post.ui.widgets.compose.Toolbar
|
|||
import com.huanchengfly.tieba.post.ui.widgets.compose.accountNavIconIfCompact
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@OptIn(ExperimentalPagerApi::class)
|
||||
@OptIn(ExperimentalFoundationApi::class)
|
||||
@Composable
|
||||
fun NotificationsPage() {
|
||||
val context = LocalContext.current
|
||||
|
|
@ -88,7 +88,7 @@ fun NotificationsPage() {
|
|||
) { paddingValues ->
|
||||
HorizontalPager(
|
||||
contentPadding = paddingValues,
|
||||
count = pages.size,
|
||||
pageCount = pages.size,
|
||||
state = pagerState,
|
||||
key = { pages[it].first },
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.huanchengfly.tieba.post.ui.page.settings.block
|
||||
|
||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
|
|
@ -13,6 +14,8 @@ import androidx.compose.foundation.layout.size
|
|||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.foundation.pager.HorizontalPager
|
||||
import androidx.compose.foundation.pager.rememberPagerState
|
||||
import androidx.compose.material.DropdownMenuItem
|
||||
import androidx.compose.material.Icon
|
||||
import androidx.compose.material.MaterialTheme
|
||||
|
|
@ -39,9 +42,6 @@ import androidx.compose.ui.res.vectorResource
|
|||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.google.accompanist.pager.ExperimentalPagerApi
|
||||
import com.google.accompanist.pager.HorizontalPager
|
||||
import com.google.accompanist.pager.rememberPagerState
|
||||
import com.google.accompanist.placeholder.material.placeholder
|
||||
import com.google.gson.reflect.TypeToken
|
||||
import com.huanchengfly.tieba.post.R
|
||||
|
|
@ -65,7 +65,7 @@ import com.ramcosta.composedestinations.annotation.Destination
|
|||
import com.ramcosta.composedestinations.navigation.DestinationsNavigator
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@OptIn(ExperimentalPagerApi::class)
|
||||
@OptIn(ExperimentalFoundationApi::class)
|
||||
@Destination
|
||||
@Composable
|
||||
fun BlockSettingsPage(
|
||||
|
|
@ -193,7 +193,7 @@ fun BlockSettingsPage(
|
|||
)
|
||||
}
|
||||
HorizontalPager(
|
||||
count = 2,
|
||||
pageCount = 2,
|
||||
state = pagerState,
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
contentPadding = paddingValues,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.huanchengfly.tieba.post.ui.widgets.compose
|
||||
|
||||
import androidx.compose.animation.core.animateDpAsState
|
||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
|
|
@ -8,6 +9,7 @@ import androidx.compose.foundation.layout.height
|
|||
import androidx.compose.foundation.layout.offset
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.layout.wrapContentSize
|
||||
import androidx.compose.foundation.pager.PagerState
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.LocalContentColor
|
||||
import androidx.compose.material.TabPosition
|
||||
|
|
@ -18,10 +20,8 @@ import androidx.compose.ui.Modifier
|
|||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.lerp
|
||||
import com.google.accompanist.pager.ExperimentalPagerApi
|
||||
import com.google.accompanist.pager.PagerState
|
||||
|
||||
@OptIn(ExperimentalPagerApi::class)
|
||||
@OptIn(ExperimentalFoundationApi::class)
|
||||
@Composable
|
||||
fun PagerTabIndicator(
|
||||
pagerState: PagerState,
|
||||
|
|
@ -33,7 +33,7 @@ fun PagerTabIndicator(
|
|||
val currentTab = tabPositions[currentPage]
|
||||
val prevTab = tabPositions.getOrNull(currentPage - 1)
|
||||
val nextTab = tabPositions.getOrNull(currentPage + 1)
|
||||
val fraction = pagerState.currentPageOffset
|
||||
val fraction = pagerState.currentPageOffsetFraction
|
||||
val currentTabLeft = currentTab.left + (currentTab.width / 2 - tabWidth / 2)
|
||||
val indicatorOffset = if (fraction > 0 && nextTab != null) {
|
||||
val nextTabLeft = nextTab.left + (nextTab.width / 2 - tabWidth / 2)
|
||||
|
|
|
|||
Loading…
Reference in New Issue