반응형
Notice
Recent Posts
Recent Comments
Link
NOW OR NEVER
[Android] Layout 본문
반응형
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이 설정되어 있고 menu 에는 menu/activity_main_drawer.xml이 설정되어 있음
- app_bar_main.xml
- 여기서 중요한 부분은 Toolbar와 include 부분
- 화면의 Toolbar에 관련된 설정을 하겠다면 이 부분에서 해주면 된다.
- include에는 layout/content_main.xml 파일이 설정되어 있다.
- content_main.xml
- NavHostFragment 가 배치되어 있다. 보여주고자 하는 Fragment들을 설정하는 부분으로
코드에서 작업을 해야 한다. - NavHostFragment 의 navGraph 속성에 보여줄 Fragment들이 등록되어 있는 xml 파일을 설정
- NavHostFragment 가 배치되어 있다. 보여주고자 하는 Fragment들을 설정하는 부분으로
- nav_header_main.xml
- 좌측에서 나타나는 NavigationView의 상단 부분에 해당
- 이 부분은 애플리케이션에 맞게 자유롭게 구성 가능
- menu/activity_main_drawer.xml
- 좌측에서 나타나는 NavagationView의 하단 부분에 해당
- 메뉴 파일을 이용해 사용자가 선택할 화면 목록을 구성
- values/strings.xml
- 보여줄 프래그먼트의 이름을 설정
- nav_header_main.xml
- 로그인한 사용자와 관련된 정보를 여주는 부분
- 보통 로그인한 사용자에 따라 표시되는 데이터가 다르기 때문에
코드로 처리해주는 것이 일반적
작성 순서
- nav_header_main.xml 작업] nav_header_main.xml 에 표시할 데이터를 설정
- Header 부분의 LinearLayout을 추출하고 하위 View들을 추출한다. : val headerLayout = binding.navView.getHeaderView(0) as LinearLayout
- 사용할 Fragment 들 생성
- values/strings.xml 작업
- 각 프래그먼트의 이름으로 사용할 문자열을 등록해준다
- navigation/mobile_navigation.xml 작업
- 사용할 프래그먼트들을 설정해준다.
- menu/activity_main_drawer.xml 작업
- 메뉴를 등록
- 메뉴 항목의 id는 mobile_navigation.xml에 등록한 프래그먼트들의 id와 일치해야만 한다.
- 사용자가 선택한 메뉴의 id와 동일한 id로 등록되어 있는 프래그먼트가 나타난다.
- MainActivity.kt 작업
- 아래 코드에서 setOf 에 메뉴의 item id를 순서대로 작성해준다.
appBarConfiguration = AppBarConfiguration(
setOf(
), drawerLayout
)
리소스
- 리소스는 읽어오는 용도로만 사용
- res 폴더에 있는 것들 모두를 뜻함 : 프로그램 실행 중 많이 사용하는 것들이라 인식하여 가져오는 데 굉장히 쉽다
- 읽고 쓰는 용도는 리소스가 아닌 stream을 이용하여 파일로 저장하여 관리한다.
xmlView 만들기
- 화면 작업 시 xml
- layout inflator로 만든 것들은 다 view이다.
- 작업 순서
- LayoutInflater로 View 생성
- ViewBiding 생성
- 생성한 View들을 레이아웃에 추가
- View 객체를 바인딩 객체에 설정 or 뷰.findViewById<가져올 뷰의 항목 종류>(항목아이디) 통해 해당 항목 가져오기
Code View
- view 가로 세로 길이 지정 시 recyclerView의 params보다 ViewGroup 사용하기
- ViewGroup.LayoutParams.MATCH_PARENT
- ViewGroup.LayoutParams.WRAP_CONTENT
- plain(edit) text 생성 : EditText(activity)
- .removeView : 어떤 view를 지울 것인지(view를 지정하여 제거)
- .removeViewAt : 몇 번째 view를 지울 것인지(순서를 지정하여 제거)
- .removeViewAll : 모든 뷰 제거
etc
- fragment들은 아무데나 만들어도 된다. 꼭 ui 폴더에 만들지 않아도 된다.
- fragment의 view들의 작업은 fragment 안에서 작성
- auto arrange로 레이아웃 정렬 가능
- 데이터 저장
- 데이터를 저장하는 이유는 데이터를 쓰기 위함이지만 현재는 쓰지 않는 데이터도 저장하고 있다.
- 데이터를 다른 단말기에서 쓰면 서버 클라이언트 구조로 만들기
- 단말기 내부에 있는 데이터는 다 날라갈 수 있음을 유의하고 작업
'Android' 카테고리의 다른 글
[Android] File I/O (0) | 2023.07.04 |
---|---|
[Android] 안드로이드 스튜디오 Mac 클릭 및 커서 Error (0) | 2023.07.04 |
[Android] ToolBar & coordinate Layout (0) | 2023.06.28 |
[Android] Emulator is already running Error & 안드로이드 Tips (0) | 2023.06.27 |
[Android] Thread & Fragment (0) | 2023.06.26 |
Comments