목록View (9)
NOW OR NEVER
MVVM 구조 개발 패턴 구조 종류 중 하나 코드를 다 나누자 화면에 보이는 요소들이 수시로 바뀔 때 쓰면 좋다 fragment 하나에서 했던 일은 다 나눠서 할 수 있게 앱 수준 gradle에 databinding{ enabled = true } 추가 View Model 새로고침 기능, 채팅 앱 등을 만들 때 채팅 내용은 수시로 업데이트 되기에 viewModel 구조로 쓰는 것이 좋다 눈에 보이는 화면의 데이터를 viewModel에서 관리 값이 변경되면 viewModel 안 감시자(observe)가 발동 화면을 구성하기 위해서 어떤 view들이 필요한 지 인지하고 있어야 한다. 데이터를 셋팅하는 곳 model : 애플리케이션에서 사용되는 모든 데이터를 담을 클래스들을 정의 UI 요소에 설정할 값을 관리..
Image view에 등록된 사진이 안보이는 현상 해결 안보이는 현상이 발생한 코드 해결 방법 : tools:src="@drawable/sample_img" 이부분을 android:src="@drawable/sample_img" 이렇게 변경
drawer Layeout new project - navigation drawer views activity 기본 기능이 만들어져 있음 res - navigation - mobile navigation : 이동하는 화면 레이아웃 디자인 res 폴더 관리 시 비슷한 계열로 하위 폴더로 만들어서 관리하는 것이 안된다. 파일 구성 activity_main.xml activity_main.xml은 include와 NaviationView로 구성 include는 layout/app_bar_main.xml 파일이 설정 NavigationView는 좌측에서 메뉴가 나타날 수 있도록 해주는 View NavigationView의 headerLayout은 layout/nav_header_main.xml이 설정되어 있고 ..
Action Bar 기본적인 사용에서는 액션 바를 쓰는 것이 편할 수 있음 fragment에서 액션바를 설정해서 쓰면 복잡해짐 action bar 안나오게 하는 설정 false true 뒤로 가기 버튼 배치 가능 Action View search view 임포트 시 androidx 패키지로 임포트 // ActionView가 펼쳐지거나 접혔을 때 // true를 반환하면 접혀지고 false를 반환하면 접혀지지 않는다. item1.setOnActionExpandListener(object : MenuItem.OnActionExpandListener{ // 펼쳐 졌을 때 override fun onMenuItemActionExpand(p0: MenuItem): Boolean { activityMainBindi..
Adapter recycler view는 무조건 adapter를 만들어서 사용해야 한다. adapter class 상속 받아서 오버라이딩 해서 adapter를 custom해서 만들어 사용할 수 있다. Base Adapter tag : 사용자한테 view에다가 어떠한 객체를 저장할 때 사용하라고 제공하는 것 각 항목(view)마다 그 항목을 관리하는 view binding이 해당 항목(view) 자체에 저장되어 있어야 한다. : 어떠한 view binding 객체를 통해 접근 할 거기 때문에 새로운 view를 만들 때마다 view에 해당 view를 관리하고 있는 viewBinding 객체를 추출해서 저장해서 해당 view에 접근할 수 있도록 해야한다. 사라진 view들은 pool에 있는 데 재사용 할 때도..
View Container Card view 한 화면 내에서 묶어주는 것 recycler view로 사용 시 많이 사용 주요 속성 card elevation : 카드 뷰의 그림자 정도 card corner radius : 카드 뷰 꼭지점 둥근 정도 content padding : 카드 뷰 내부 여백 widget calendar view 안드로이드에서는 잘 사용하지 않는다 : 날짜를 고르는 기능만 있고 크기가 너무 커 화면을 많이 차지해서 잘 사용하지 않는다. 안드로이드에서는 이거 말고 dialog에서 날짜 고를 수 있는 것을 주로 쓴다 search view edit text와 동일한 것 adapter view 개발자가 결정해서 지정해야지만(customize) 화면을 구성해서 보여주는 ui요소들, 즉 스스..
Compound Component CompoundComponent : toggleButton, checkBox, RadioButton, Switch, checkedTextView, chip Buttons toggleButton toggle해서 보여주는 것이 목적 주요 속성 text : on/off 공통상태일 때의 문자열 textOn : on 상태일 때의 문자열 textOff : off 상태일 때의 문자열 함수 isChecked : 토글 버튼의 ON(true)/OFF(false) 상태를 가져온다. toggle : 토글 상태 반전 Switch 주요 속성 text : switch 좌측에 나타나는 문자열 textOn : on 상태일 때의 문자열 textOff : off 상태일 때의 문자열 shortText: t..
View Containers scrollView 상하 혹은 좌우로 스크롤 할 수 있게 해준다. 화면을 구성하는 요소가 화면을 벗어나야 한다. 상하좌우 하는 법 : ScrollView 구성 후 그 안에 HorizontalScrollView 구성(혹은 그 반대도 가능) 후 linear layout vertical 안에 horizontal 구성(혹은 그 반대) scroll View는 상하(y)로만 움직일 수 있고 horizontal은 좌우(x)로만 움직일 수 있다. 함수 scrollX : scroll view의 X좌표를 가져온다 scrollY : scroll view의 y좌표를 가져온다 scrollTo(x좌표, y좌표) : 해당 좌표로 이동 smoothScrollTo(x좌표, y좌표) : 코드를 통해서 어딘가..
View 뷰 하나 이상의 테이블을 합하여 만든 가상의 테이블 실제로 존재하지 않는 가상의 테이블( 실제로 존재하지 않는 select한 결과) 자주 사용하는 복잡한 sql을 미리 뷰를 만들어 두어 편리하게 사용 가능 기본문법 create view 뷰이름 [컬럼이름] as select 문 요약 : 실제로 존재하지 않는 가상의 논리적인 테이블을 말하며 복잡한 sql을 미리 뷰를 만들어 둠으로써 쉽게 조회할 수 있고 사용자별 접근 제한을 위해 뷰를 사용한다. 뷰를 통한 추가, 수정, 삭제 가능 뷰를 통한 레코드 추가 뷰에 레코드 추가시 실제 레코드는 뷰를 만들 때 사용한 모테이블에 추가된다. 그렇기 때문에 뷰 생성시 사용한 컬럼 외의 칼럼들은 null을 허용하거나 default값이 설정되어 있어야 view를 통..