Android
-
[UI] Touch Event (1) - 터치 이벤트 전달 과정Android/UI 2021. 9. 15. 19:46
참고한 블로그 https://readystory.tistory.com/185 [Android] 안드로이드의 Touch Event 는 어떻게 전달 될까? (with. Touch Intercept) 사용자와의 상호작용(Interaction)을 처리하는 것은 모바일 프로그래밍에서 굉장히 중요합니다. 안드로이드 애플리케이션은 기본적으로 Activity를 통해 화면을 구성하며, 사용자는 화면을 터치함으 readystory.tistory.com 안드로이드에서 기본적으로 터치 이벤트를 어떻게 처리하는지에 대해서 공부중이다. 터치 이벤트의 전달과정의 이해가 필요하였으며, 터치 이벤트에 대해 클릭과 롱클릭등이 어떻게 동작하는지 확인하는 것이 목표이며 이번편에서는 기본적인 전달과 처리과정만 들여다본다. 과정을 확인하기 위..
-
[AAC] DataBinding -3 <variable>에 뷰모델 변수Android/ArchitectureComponent 2021. 9. 14. 16:42
이전 포스팅 2021.09.11 - [Android/DataBinding] - [Android] DataBinding 2 - generated binding class 데이터 바인딩과 ViewModel, LiveData를 같이 활용해야 하는데 데이터 바인딩과 ViewModel 둘을 활용하다가 막힌 점에 대해서 바인딩 레이아웃 MyViewModel타입 myViewModel변수 layout expression으로 viewModel의 testString값을 텍스트 속성으로 설정 MainActivity MyViewModel 이 상태에서 TextView가 다른 적절한 String으로 업데이트 되어야 할때 다음과 같이 하면 변경이 될까? myViewModel.testString="변경이 될까" onCreate, o..
-
[AAC] DataBinding 2 - generated binding classAndroid/ArchitectureComponent 2021. 9. 11. 14:10
2021.09.09 - [Android/DataBinding] - [Android] DataBinding 1- 데이터바인딩 기본 사용법 ViewDataBinding 데이터 바인딩 클래스들( 태그를 사용한 layout들의 각각에 해당하는 바인딩 클래스들) 의 Base class. DataBindingUtil 레이아웃으로부터 ViewDataBinding클래스 인스턴스를 생성하기 위한 유틸리티 클래스 클래스 메서드로 데이터 바인딩과 관련된 기능을 수행한다. (inflate, bind, setContentView) 우리가 사용하는 바인딩 클래스 ViewDataBinding의 자손으로 구현되며, 내부에 변수가 포함되어있다. activity_main.xml -> ActivityMainBinding extends V..
-
LayoutInflater의 inflate메서드Android/Layout 2021. 9. 10. 16:28
LayoutInflater의 inflate메서드 attachToRoot와 root의 제공 유무에 따라 리턴하는 값이 다르다. inflate(int resource, ViewGroup root) root가 제공되지 않으면 자식으로 붙이지 않고 root가 제공되면 root에 자식으로 레이아웃이 붙게 된다. 리턴 root가 제공되면 root리턴, root가 제공되지 않으면 inflated된 view계층의 루트 boolean attachToRoot가 존재하는 경우 리턴 root가 제공되고 attachToRoot가 true인 경우 - root 리턴 이외 - inflated된 view계층의 루트 리턴
-
layout 재사용 <include/> <merge/>Android/Layout 2021. 9. 10. 12:36
https://developer.android.com/training/improving-layouts/reusing-layouts 로 레이아웃 재사용 | Android 개발자 | Android Developers Android에서는 다양한 위젯을 통해 재사용 가능한 작은 상호작용 요소를 제공하지만, 특수 레이아웃이 필요한 큰 구성요소를 재사용해야 할 수도 있습니다. 전체 레이아웃을 효율적으로 재사용하 developer.android.com https://developer.android.com/guide/topics/resources/layout-resource#include-element 레이아웃 리소스 | Android 개발자 | Android Developers 레이아웃 리소스 레이아웃 리소스는 활동..
-
wrap_content, match_parent와 TextView 자체 크기Android/Layout 2021. 9. 10. 03:04
layout을 재사용하기 위해 태그를 사용하다 갑자기 원하는 동작이 나오지 않았다. 이전에 정리했던 글인데 정확히 공부하지 않아서 추가적으로 공부한 것을 정리했다. 아무것도 출력되지 않아 당황스러웠다. 다음의 layout파일을 보자. layout_width는 match_parent로 동일하다. layout_width는 wrap_content로 동일하지만 각 위젯의 textSize가 달라 텍스트 하나의 높이가 달라진 결과로 wrap_content도 서로 다른 값을 가진다. 이 부분은 쉽게 이해된다. layout_height는 100dp로 동일하다. layout_width는 wrap_content로 content에 해당하는 텍스트의 총 가로길이로 결정된다. 이 부분도 쉽게 이해된다. layout_height..
-
[AAC] DataBinding 1- 데이터바인딩 기본 사용법Android/ArchitectureComponent 2021. 9. 9. 18:45
Activity에 연결된 layout 파일의 View를 참조하기 위해서 findViewById를 사용하였다. findViewById는 동일한 이름의 ui component id가 존재할 때 다른 view의 id가 들어갈 여지가 있고 id를 찾는데 시간이 오래걸린다. 가독성 또한 좋지않다. ViewBinding은 layout파일과 관련된 바인딩 오브젝트를 생성하여 바인딩 오브젝트를 통하여 id에 해당하는 뷰를 참조할 수 있었다. DataBinding은 ViewBinding의 확장 개념으로 ViewBinding의 기능을 포함해 layout파일에서 변수처럼 사용할 수 있는 변수를 포함시켜 바인딩 오브젝트에 데이터를 멤버로 포함시킬 수 있다. 바인딩 오브젝트에 포함된 변수를 이용하여 layout부분에서 ui의 ..
-
[Deprecated] StartActivityForResultAndroid/Deprecated 2021. 8. 2. 17:19
빠른 개인 참고용 (kotlin) mActivityResultLauncher = registerForActivityResult(StartActivityForResult()) { activityResult-> if(activityResult.resultCode== Activity.RESULT_OK){ val intent:Intent?=activityResult.data if(intent!=null){ //처리 } }else{ } } 정리 ComponentActivity의 registerForActivityResult메서드를 사용해야 한다. registerForActivitiyResult메서드를 사용하기 위해서 return되는 것, 인자로 들어가는 것에 대해 알아보자. java.lang.Object ↳and..