-
카테고리
-
세부 분야
모바일 앱 개발
-
해결 여부
미해결
모바일화면에 키보드가 사라지지 않아
23.10.12 08:41 작성 조회수 139
0
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val navController = rememberNavController() // Composable 의 backstack 추적 & 각 Screen 들의 state을 관리함
NavHost( // navigation grpah 를 생성
navController = navController,
startDestination = "first"
) {
composable(route = "first") { FirstScreen(navController) }
composable(route = "second") { SecondScreen(navController) }
composable(route = "third/{value}") { backStackEntry ->
ThirdScreen(
navController,
value = backStackEntry.arguments?.getString("value") ?: "",
)
}
}
}
}
}
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun FirstScreen(navController: NavController) {
val(value, setValue) = remember {
mutableStateOf("")
}
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Text("첫화면")
Spacer(modifier = Modifier.height(16.dp))
Button(onClick = {
navController.navigate("second")
}) {
Text("두번째화면으로")
}
Spacer(modifier = Modifier.height(16.dp))
TextField(value=value, onValueChange = setValue)
Button(onClick = {
if(value.isNotEmpty()) {
navController.navigate("third/$value")
}
}) {
Text("세번째화면으로")
}
}
}
@Composable
fun SecondScreen(navController: NavController) {
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Text("두번째화면")
Spacer(modifier = Modifier.height(16.dp))
Button(onClick = {
navController.navigateUp() // navController.popBackStack() 도 가능함
}) {
Text("뒤로가기")
}
}
}
@Composable
fun ThirdScreen(navController: NavController, value:String) {
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Text("세번째화면")
Spacer(modifier = Modifier.height(16.dp))
Text(value)
Button(onClick = {
navController.navigateUp()
}) {
Text("뒤로가기")
}
}
}
위 코드실행 후
란에 문자열입력하면 모바일화면에 키보드가 사라지지 않아
세번째화면 버튼이 안보여 누를 수 없는데
실력이 초보라 어찌할 바를 보르겠네요 *.^
답변을 작성해보세요.
0
답변 1