묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결모던 안드로이드 - Jetpack Compose 입문
모바일화면에 키보드가 사라지지 않아
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("뒤로가기") } } }위 코드실행 후 란에 문자열입력하면 모바일화면에 키보드가 사라지지 않아세번째화면 버튼이 안보여 누를 수 없는데 실력이 초보라 어찌할 바를 보르겠네요 *.^
-
미해결[LV1] Jetpack Compose - UI 연습하기
horizontalArrangement verticalAlignment 관련질문입니다
위의 코드중에서 아래horizontalArrangement = Arrangement.SpaceEvenly, verticalAlignment = Alignment.CenterVertically,이부분 코드를 추가해도 여전히 글자들은 화면상단 좌측에 정렬되는 군요 ...
-
미해결[LV1] Jetpack Compose - UI 연습하기
혹시 Lv2 강의는 언제쯤 올라오는 알수잇을까요?
이번 강의에 관련된 질문은 아니지만, Lv2 도 차근차근 올려주신다고했는데, 혹시 Lv2 는 언제쯤 올라오는지 알 수 있으까요? ㅠ
-
미해결[LV1] Jetpack Compose - UI 연습하기
강사님 닉네임에 생각나는 것이 있어용 ^^
포항에 가니 죽도시장에 개복치회가 있던데 혹시 고향이 포항부근이신감유 *.^
-
미해결모던 안드로이드 - Jetpack Compose 입문
빨간줄 너무많아요 ******
너무 많아서 ㅎ
-
미해결모던 안드로이드 - Jetpack Compose 입문
Scaffold 쪽에 오류가 있습니다
Scaffold() { 내부에 Column () { ... } 을 넣으니 빨간줄 오류가 나네요 }
-
미해결모던 안드로이드 - Jetpack Compose 입문
TextField 에서 오류가 납니다
36 번라인이구요 This material API is experimental and is likely to change or to be removed in the future.위와 같은 경고메세지가 뜨네요 ...
-
미해결냉동코더의 알기 쉬운 Modern Android Development 입문
[BookSearchAdapter] onBindViewHolder의 currentList[position] 질문
안녕하세요 선생님! 강의 잘 듣고 있습니다.한 가지 궁금한게 있어서 질문 남깁니다.다름아니라, BookSearchAdapter의 onBindViewHolder에서 book의 position을 currentList에서 가져오시던데,val book = currentList[position]과val book = getItem[position]의 차이점이 무엇인지 궁금합니다...!기능적으로 차이가 없다면, 경우에 따라 어떤 것을 사용하는것이 더 효율적인지 궁금합니다! 감사합니다.
-
미해결[LV1] Jetpack Compose - UI 연습하기
웹뷰 화면 깨짐 현상에 대해 질문드립니다!
똑같은 코드를 작성하고 앱을 실행했더니 에뮬레이터 화면이 깨져서 보이는 현상이 일어납니다! 화면 깨짐 현상이 일어나는 사진과 전체 코드도 첨부하겠습니다!
-
미해결냉동코더의 알기 쉬운 Modern Android Development 입문
코루틴 메모리 관련해서 질문드립니다!
스레드 내에서 여러개의 코루틴이 동작할 수 있다고 하셨는데(8분 51초쯤) 이런 경우에도 프로세스의 힙 메모리를 공유하여 동작하게 되는건지 궁금합니다 :)
-
미해결[중급편] 친절한 JETPACK 개론 <하> (Android Kotlin)
paging lv3 에서 json 받아오는 도메인이 만료됬다고 떠요
paging lv3 에서 json 받아오는 도메인이 만료됬다고 떠요 어떻게 하면 될까요?
-
해결됨[중급편] 친절한 JETPACK 개론 <상> (Android Kotlin)
ViewBinding 질문 있습니다.
시간은 ViewBinding 8분 50초입니다FragmentBinding 초기화하실 때private var _binding : FragmentTestBinding? = nullprivate val binding get() = binding!!이렇게 하셨는데요 액티비티에선private lateinit var binding : ActivityMainBinding 으로 하셨습니다저도 평소엔 이렇게 사용했는데 어떤 이유이신가요?보통 흔히 사용하는 get함수 역할이라고 생각하면 될까요?아니면 fragment에서 binding 초기화에러가 날 수 있기 때문인가요?궁금합니당.
-
미해결냉동코더의 알기 쉬운 Modern Android Development 입문
Java Bill Pugh Solution 에서 INSTANCE
Singleton Pattern 기초 강의 내용에서 질문드립니다.Bill Pugh Solution (Java) 부분에서 Holder 클래스를 보시면private static final DBHandler INSTANCE = new DBHandler();라고 되어있는데, 이 경우 getInstance() 함수를 통해 Holder.INSTANCE 가 호출이 되어도 fianl 로 선언되어있어 한번만 선언되기 때문에 signleton 으로 사용 가능하다는 말씀이 맞는지 궁금합니다.
-
해결됨모던 안드로이드 - Jetpack Compose 입문
mutableStateOf에 초기값을 안 넣을 수는 없을까요?
강사님 강의 덕분에 쉽고 빠르게 Compose를 학습하고 있습니다. 강의를 레퍼런스 삼아서 Compose로만 앱을 제작하고 있는데요 ViewModel에서 State를 사용해서 여러 작업을 하는 도중초기값이 필요 없는 경우가 생겼습니다. 하지만 State에 초기값을 넣어주지 않으면 에러가 발생해 private val allItem = mutableStateOf<List<ItemEntity>?>(null) val allItem: State<List<ItemEntity>?> = allItem이렇게 null을 넣어서 사용 중인데이러다 보니 매번 null 체크를 해줘야하는 번거로움이 발생하고 코틀린의 장점을 잘 활용 못하고 있다는 생각이 들었습니다. 당연히 State에 초기값을 안 넣어주고 사용하는 법도 찾아봤는데 일단 원하는 답은 찾지 못했습니다. 혹시 어떻게 하면 좋을까요?
-
해결됨모던 안드로이드 - Jetpack Compose 입문
'키' 텍스트 필드가 Appbar에 가려지는 현상
강사님 코드 그대로 작성했는데 키 텍스트 필드가 안 보입니다.padding을 좀 줬더니 Appbar 밑으로 텍스트 필드가 일부 나오는 걸 확인했습니다.padding값을 주는 걸로 이 문제를 해결하는 건 좋은 방법이 아닌 것 같은데 이 문제를 어떻게 해결하면 될까요?패딩 주기 전 패딩 준 후
-
미해결[중급편] 친절한 JETPACK 개론 <하> (Android Kotlin)
Transformations 가 import가 안됩니다!!
현재 이 버전의 Lifecycle을 사용중인데 혹시Transfomations가 Unresolved reference 에러가나는 이유를 알 수 있을까요 ?implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1"
-
미해결[중급편] 친절한 JETPACK 개론 <하> (Android Kotlin)
질문드립니다!
챕터9에 검색한 데이터 요청 챕터에서 viewmodel과 viewmodelfactory로 나눈 이유가 있을까요?
-
미해결[중급편] 친절한 JETPACK 개론 <상> (Android Kotlin)
fragment 이동시 data 초기화
fragment 1 에서 btn 을 눌러서 plus가 되면 value값이 증가를 하고, 이 증가한 상태에서 fragment 2로 갔다가,다시 fragment1 을 누르면 이전에 fragment가 나오는게 아니라 새로운 fragment가 생성이 되네요?transaction할 때 replace를 써서 그런것 같은데, fragment1 버튼을 누르면 새로운 fragment1이 아닌 기존 생성한 fragment1 화면으로 가는 것은 어떻게 해야 하나요?
-
미해결모던 안드로이드 - Jetpack Compose 입문
전자액자 READ_EXTERNAL_STORAGE 권한 deprecated
Andoid 13 이상부터 READ_EXTERNAL_STORAGE 권한이 deprecated 되었습니다. 전자액자 권한 화면에서 권한요청 버튼 눌러도 반응 없는 분들은 참고하세요. Manifest 포함 READ_EXTERNAL_STORAGE 적용된 부분 전체 READ_MEDIA_IMAGES로 적용해보세요.<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>if (ContextCompat.checkSelfPermission( this, Manifest.permission.READ_MEDIA_IMAGES ) == PackageManager.PERMISSION_GRANTED ) { granted = true }PermissionRequestScreen { launcher.launch(Manifest.permission.READ_MEDIA_IMAGES) }
-
미해결[중급편] 친절한 JETPACK 개론 <상> (Android Kotlin)
CoroutineScope 질문
CoroutineScope 함수를 사용하여 Log.d를 찍어Start ~ End까지 찍어보는 예제에서순서가STARTENDCoroutineScope STARTapi1api2bp1bp2CoroutineScope END순차실행으로 START다음 CoroutineScope안의 내용을 다 실행 후 마지막에 END가 찍힐것으로 예상했는데 START 다음 END가 찍히는걸 보고 원인이 뭔지 궁금해서 질문했습니다.