NOW OR NEVER

[Android] Layout 본문

Android

[Android] Layout

LAURA 2023. 7. 3. 17:24
반응형

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 파일을 설정
  • nav_header_main.xml
    • 좌측에서 나타나는 NavigationView의 상단 부분에 해당
    • 이 부분은 애플리케이션에 맞게 자유롭게 구성 가능
  • menu/activity_main_drawer.xml
    • 좌측에서 나타나는 NavagationView의 하단 부분에 해당
    • 메뉴 파일을 이용해 사용자가 선택할 화면 목록을 구성
  • values/strings.xml
    • 보여줄 프래그먼트의 이름을 설정
  •  nav_header_main.xml
    • 로그인한 사용자와 관련된 정보를 여주는 부분
    • 보통 로그인한 사용자에 따라 표시되는 데이터가 다르기 때문에
      코드로 처리해주는 것이 일반적

작성 순서

  1. nav_header_main.xml 작업] nav_header_main.xml 에 표시할 데이터를 설정
  2.  Header 부분의 LinearLayout을 추출하고 하위 View들을 추출한다. :  val headerLayout = binding.navView.getHeaderView(0) as LinearLayout
  3. 사용할 Fragment 들 생성
  4. values/strings.xml 작업
    • 각 프래그먼트의 이름으로 사용할 문자열을 등록해준다
  5.  navigation/mobile_navigation.xml 작업
    • 사용할 프래그먼트들을 설정해준다.
  6. menu/activity_main_drawer.xml 작업
    • 메뉴를 등록
    • 메뉴 항목의 id는 mobile_navigation.xml에 등록한 프래그먼트들의 id와 일치해야만 한다.
    • 사용자가 선택한 메뉴의 id와 동일한 id로 등록되어 있는 프래그먼트가 나타난다.
  7. MainActivity.kt 작업
    • 아래 코드에서 setOf 에 메뉴의 item id를 순서대로 작성해준다.
appBarConfiguration = AppBarConfiguration(
            setOf(
               
            ), drawerLayout
        )

리소스

  • 리소스는 읽어오는 용도로만 사용 
  • res 폴더에 있는 것들 모두를 뜻함 : 프로그램 실행 중 많이 사용하는 것들이라 인식하여 가져오는 데 굉장히 쉽다
  • 읽고 쓰는 용도는 리소스가 아닌 stream을 이용하여 파일로 저장하여 관리한다.

xmlView 만들기

  • 화면 작업 시 xml
  • layout inflator로 만든 것들은 다 view이다.
  • 작업 순서
    1. LayoutInflater로 View 생성
    2. ViewBiding 생성
    3. 생성한 View들을 레이아웃에 추가
    4. 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로 레이아웃 정렬 가능
  • 데이터 저장
    • 데이터를 저장하는 이유는 데이터를 쓰기 위함이지만 현재는 쓰지 않는 데이터도 저장하고 있다.
    • 데이터를 다른 단말기에서 쓰면 서버 클라이언트 구조로 만들기
  • 단말기 내부에 있는 데이터는 다 날라갈 수 있음을 유의하고 작업

 

 

Comments