목록[Study]/Android (18)
기록
LiveData Android Studio 3.1 이상부터는 LiveData와 ViewModel이 데이터바인딩과 함께 작동한다. (Databinding Supports for ViewModel and LiveData) binding.viewModel = viewModel binding.setLifecycleOwner = this 위와 같이 xml 레이아웃에 뷰모델과 LifecycleOwner을 바인딩야하면 xml에 바인딩한 LiveData를 제대로 관찰할 수 있다. 따라서 xml에 바인딩 수식으로 ViewModel과 LiveData에 대한 참조를 표현할수 있다. 데이터바인딩을 사용하면 더 이상 UI단에서 Observer를 수동으로 설정할 필요가 없다. 따라서 LiveData Observer 코드를 만드는..
val menuHost: MenuHost = requireActivity() menuHost.addMenuProvider( object : MenuProvider { override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) { menuInflater.inflate(R.menu.selected_note_menu, menu) } override fun onMenuItemSelected(menuItem: MenuItem): Boolean { when (menuItem.itemId) { R.id.delete_menu -> { viewModel.deleteNote(note) navController.navigateUp() } else -> return ..
override fun onMenuItemSelected(menuItem: MenuItem): Boolean { when (menuItem.itemId) { R.id.delete_menu -> { viewModel.deleteNote(note) this@SelectedNoteFragment.findNavController().popBackStack() } else -> return false } return true } java.lang.IllegalStateException: Fragment SelectedNoteFragment{e2fb287} (9027fbbf-8601-4b62-ab29-fdbea88a370d) not associated with a fragment manager. findNavCon..
사용자가 Android Trivia 앱 내에서 게임 결과를 공유하려면 먼저 코드가 한 조각에서 다른 조각으로 매개 변수를 전달해야 합니다. 이러한 트랜잭션의 버그를 방지하고 유형 안전을 위해 SafeArgs라는 Gradle 플러그인을 사용합니다. 플러그인이 NavDirection 클래스를 생성하고 이러한 클래스를 코드에 추가합니다. In later tasks in this codelab, you use the generated NavDirection classes to pass arguments between fragments. SafeArgs 플러그인이 필요한 이유 종종 앱은 조각들 사이에 데이터를 전달해야 합니다. 한 Fragment에서 다른 Fragment로 데이터를 전달하는 한 가지 방법은 번들 ..
안드로이드는 원하는 View를 찾을 때 까지 런타임에 Root에서 시작하여 View 계층을 탐색한다. 때문에 앱의 View 계층 구조가 복잡한 경우, findViewById()는 비용이 많이 들고 앱의 속도를 느려지게 한다. 다행히 이를 개선하기 위한 방법이 있고, 이것이 데이터 바인딩이다. View에서 데이터를 보이기 위해 string resources를 사용하고 Activity/Fragment에 데이터를 선언한다. 데이터 바인딩은 View가 데이터에 대해 미리 알고있게 하여 이를 더욱 효율적이게 해준다. 데이터 바인딩 기술은 전체 앱에서 사용할 수 있는 각 View에 대한 참조가 포함된 바인딩 개체를 만드는 것이다. 앱에 대한 바인딩 개체를 만든 후에는 View 계층을 이동하거나 데이터를 탐색할 필요..
https://cishome.tistory.com/226
Android Studiod의 레이아웃 편집기를 사용하여 다양한 종류의 사용 및 리소스와 이를 화면에 정렬하는 방법을 알아보자. View Groups & View Hierarchy Android에서 화면을 구성하는 모든 시각적 요소들은 모두 View 클래스의 자식이다. 레이아웃을 구성하는 View는 View의 계층구조로 구성된다. 기본 작업이 다른 View를 포함하는 View를 ViewGroups라고 한다. ViewGroups : LinearLayout, ConstraintLayout, ScrollView ... View : EditText ... 때때로 각 View의 크기, 위치, View가 겹치는 방법 등을 고려하여 모든 View가 어디로 이동하는지를 여러번 계산한다. 일부 앱의 경우 이 View 계..