ViewPager+TabLayoutをJetpackComposeで実装しようと思った
このやり方
・パッケージ
com.google.accompanist:accompanist-pagerは古い
今は、androidx.compose.foundation:foundation:1.4.0
・タブバー
TabRowとTabで実装できる
https://qiita.com/yasukotelin/items/15ffad2c66a642746679
・スワイプ付きビュー
HorizontalViewで実装できる
これはまだ実験APIだから以下をつける必要がある
ここだけ今後心配やなぁ・・・・。
@OptIn(ExperimentalFoundationApi::class)
・ページングとタブの紐付け
val pagerState = rememberPagerState()
TabRow(
selectedTabIndex = pagerState.currentPage,
Tab(
selected = pagerState.currentPage == 0,
HorizontalPager(
state = pagerState
・indicator
indicatorは以下で設定できる
https://google.github.io/accompanist/pager/#integration-with-tabs
TabRow(
indicator = { tabPositions ->
TabRowDefaults.Indicator(
Modifier.tabIndicatorOffset(tabPositions[pagerState.currentPage])
)
},
・タブクリック後に画面をスクロールさせる
https://zenn.dev/apple_nktn/articles/2f6617db3bfd41
val scope = rememberCoroutineScope()
Tab(
onClick = {
scope.launch {
pagerState.animateScrollToPage(0)
}
},
これで一通り動くようになりましたとさ