NOW OR NEVER

[Android] UI 요소 - View 2 본문

Android

[Android] UI 요소 - View 2

LAURA 2023. 6. 14. 09:03
반응형

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요소들, 즉 스스로 결정할 수 없어 화면을 보여 줄 수 없는 view들
  • adapter class : 개발자가 설정한 다양한 데이터들을 관리하는 Class, 해당 class 를 보고 화면을 구성하게 된다.
  • arrayAdapter : 문자열 하나를 세팅할 때 사용(this, 어떠한 문자열 설정할 것인지)
  • 항목 뷰 하나에서 값을 설정할 뷰가 TextView 하나라면 ArrayAdapter
  • 다수의 다양한 뷰라면 SimpleAdapterList View

Legacy

  • 가장 대표적인 adapter view
  • 가로와 세로가 몇 줄인지 전체가 몇 개인지, 요소 별로 구성이 어떻게 보이는 지 등을 개발자가 결정해서 지정해야지만 화면을 구성해서 보여줄 수 있다
  • 화면의 대부분을 차지하게 해야지 보기 편하다.
  • 데이터 수, 어떠한 모양, 들어가는 데이터 등 지정
  • 코드 구성 단계
    • 1.구성하기 위해 필요한 데이터을 담을 변수 선언 : arrayOf(), mutableListOf<>() 등 사용 가능
    • 2.Adapter 생성
      • ArrayAdapter : 칸 하나에 문자열 하나만 사용하는 경우
      • val 어댑터이름 = 어댑터종류<자료형>(Context, 항목하나를 구성하기 위해 사용할 레이아웃, 텍스트뷰에 채워줄 자료형 배열)
      • adapter 생성 시 listView 
      • // R.layout.simple_list_item_1 이라고 지정된 레이아웃 안에 있는 text1 val adapter = ArrayAdapter<String>( this, R.layout.simple_list_item_1, data1 )
    • 3.adapter 설정 : listView아이디.run 안에서 setAdapter(생성한 adapter 이름 작성) 으로 설정 / listView아이디.adapter 으로 설정
    •  4.리스너 구현
      • setOnItemClickListener { parent, view, position, id -> 실행문} : ListView의 항목 하나를 선택하면 동작하는 리스너
        • position : 사용자가 터치한 항목의 순서값(0부터 1씩 증가)
  • System.currentTimeMills : 중복되지 않은 값이 필요 할 때 사용
  • listViewID.adapter as ArrayAdapter으로 adapter 형변환 후 .notifyDataSetChanged() : listview의 adapter을 통해 갱신 요청
  • listView의 항목 하나를 정의하는 원리
    • 1.SimpleAdapter에 설정하는 ArrayList 내의 HashMap의 개수 만큼 항목이 만들어진다.
    • 2.각 항목을 개별적으로 구성하여 보여준다.
    • 3.항목 하나를 구성하기 위해 항목 번째의 HashMap을 추출한다.
    • 4.HashMap에 있는 데이터를 keys 배열에 들어있는 이름의 순서대로 추출한다.
    • 5.ids 배열에 설정되어 있는 View의 ID 순서대로 데이터를 설정한다.
  • simpleAdapter에 필요한 데이터를 구성 후 리스트뷰로 보여주는 것


button

Floating Action Button

  • 그림자가 있는 버튼
  • 우측 하단에 놓고 많이 쓴다
  • 주로 constraint layout에 배치해서 쓴다.
  • 클릭 리스너는 button 클릭 시 나오는 리스너와 같다(setOnClickListener)


context

  • 안드로이드에서만 사용하는 언어는 아니라 개발 관련 언어에서 다 이런 용어를 사용
  • 다양한 용도로 사용하기에 딱 뭐라고 말할 순 없다
  • 단말기 내부 안에 어떠한 작업을 하기 위한 필요한 정보를 관리하는 요소들을 통칭(정보 담고 있는 그것을 가져와서 사용하는 것이다.)
  • 단말기 종류도 다르고 설정도 다르기에 그 내부시스템에 있는 정보를 가져오는 작업이 필요하다.
  • 안드로이드는 시스템이나 애플리케이션과 관련된 정보를 가지고 있다.
  • baseContext : 기본적인 context
  • applicationContext : 데이터 관리에서 중요한 context
  • MainActivity는 context를 상속받고 있다.


etc

  • 인터페이스는 깃 허브(https://github.com/)에서%EC%97%90%EC%84%9C) 검색해서 보고 참고해도 좋다. ( android 찾아볼이름 -> 이렇게 검색해보기) ex) android view, android PickerView
  • 안드로이드 자체에서는 recycler view를 사용하는 것을 권장한다.
  • ui는 만들어 쓰지 말고 가져다 쓰고 기능 중심으로 개발하는 것을 권장한다.
  • this@
    • this 선언 시 {}를 선언한 객체 말고 다른 activity 객체로 하고 싶을 때 @ 사용
    • reflection의 일종
    • this@MainActivity : mainActivity 객체 의미
  • .removeLast() : list 마지막 값 제거
  • view를 여러 개를 만들 순 있지만 data를 설정할 수 있는 view는 딱 한 개이다.
  • sample data 사용 금지 : 코드가 들어가야 하는 이미지라 임시 이미지로 적합하지 않음
  • 여러 화면 일 경우
    • hashMap들을 가지고 있는 리스트 생성
    • hashMap 하나 안에는 항목 하나를 구현하기 위해 들어가는 데이터
  • LogCat
    • 파란색이 작업하고 있는 파일
      • arrayOutOfIndexError : 배열 인덱스 넘어섰을 때 에러
  • sdk file not found 해결
    • gradle scripts - local.properties 에서 sdk.dir = sdk 파일 주소 로 설정
    • 맥의 경우 sdk 파일 주소 : /Users/사용자 이름/Library/Android/sdk

'Android' 카테고리의 다른 글

[Android] 권한  (0) 2023.06.15
[Android] View3 - Adapter  (0) 2023.06.14
[Android] Compound Component  (0) 2023.06.12
[Android] UI 요소 - View  (0) 2023.06.11
[Android] LogCat & UI 요소 - Widget  (0) 2023.06.08
Comments