我正在使用带有水平寻呼机的片段。目前,我有三个片段,但尽管尝试了一些方法,但它不起作用。 Toast 已显示,但片段不可见。
寻呼机功能
@OptIn(ExperimentalFoundationApi::class)
@Composable
fun IntroPager() {
val pagerState = rememberPagerState(pageCount = { 3 })
val context = LocalContext.current
HorizontalPager(state = pagerState, modifier = Modifier.fillMaxSize()) { page: Int ->
Box (modifier = Modifier.fillMaxSize() , contentAlignment = Alignment.Center){
when (page) {
0 -> {
Toast.makeText(context, "Intro 1", Toast.LENGTH_SHORT).show()
IntroFragment1()
}
1 -> {
Toast.makeText(context, "Intro 2", Toast.LENGTH_SHORT).show()
IntroFragment2()
}
2 -> {
Toast.makeText(context, "Intro 3", Toast.LENGTH_SHORT).show()
IntroFragment3()
}
else -> error("Invalid page: $page")
}
}
}
}
片段1
class IntroFragment1 : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
return ComposeView(requireContext()).apply {
setContent {
Column (Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally){
Text(text = "Intro Fragment 1")
}
}
}
}
}
另外两个片段与第一个片段相同。
HorizontalPager
中提供片段:
when (page) {
0 -> {
Toast.makeText(context, "Intro 1", Toast.LENGTH_SHORT).show()
IntroComposable1()
}
1 -> {
Toast.makeText(context, "Intro 2", Toast.LENGTH_SHORT).show()
IntroComposable2()
}
2 -> {
Toast.makeText(context, "Intro 3", Toast.LENGTH_SHORT).show()
IntroComposable3()
}
else -> error("Invalid page: $page")
}
然后创建三个类似的Compoables
@Composable
fun IntroComposable1() {
Text(
text = "IntroComposable1"
)
}
@Composable
fun IntroComposable2() {
Text(
text = "IntroComposable2"
)
}