1) Layout(๋ ์ด์์) ์ด๋
๋ ์ด์์์ ์ฑ์์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ํ ๊ตฌ์กฐ ( ์: Activity)๋ฅผ ์ ์ํ๋ค.
๋ ์ด์์์ ๋ชจ๋ ์์๋ View์ ViewGroup ๊ฐ์ฒด์ ๊ณ์ธต์ ์ฌ์ฉํ์ฌ ๋น๋๋๋ค.
View๋ (์ผ๋ฐ์ ์ผ๋ก) ์ฌ์ฉ์๊ฐ ๋ณด๊ณ ์ํธ์์ฉํ ์ ์๋ ๊ฒ์ ๊ทธ๋ฆฐ๋ค. ์ผ๋ฐ์ ์ผ๋ก View ๊ฐ์ฒด๋ '์์ ฏ'์ด๋ผ๊ณ ํ๊ณ , ์ฌ๋ฌ ํ์ ํด๋์ค ์ค ํ๋๊ฐ ๋ ์ ์๋ค. ์์๋ก Button, Textview๊ฐ ์๋ค.
ViewGroup์ View์ ๋ค๋ฅธ ViewGroup๊ฐ์ฒด์ ๋ ์ด์์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ ํฌ๋ช ์ปจํ ์ด๋์ด๋ค. Viewgroup๊ฐ์ฒด๋ ๋๊ฒ '๋ ์ด์์'์ด๋ผ๊ณ ๋ถ๋ฅด๊ณ , ๋ค์ํ ๋ ์ด์์ ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ๋ ์ฌ๋ฌ ์ ํ ์ค ํ๋์ผ ์ ์๋ค. ์์๋ก LinearLayout, ConstraintLayout์ด ์๋ค.
2) Layout ํด๋์ค ์ฌ์ฉํ๊ธฐ
layoutํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฆฌ์์ค xml ํ์ผ์ ์ถ๊ฐํ๋ ๊ฒ๊ณผ, java ์์ค์์ layout์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ๊ฒ ์ด ๋ ๊ฐ์ง๊ฐ ์กด์ฌํ๋ค. ํ์ง๋ง Layout ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๊ฑฐ์ ์ฌ์ฉ๋์ง ์๊ณ ๊ฑฐ์ ๋ชจ๋ ๊ฒฝ์ฐ์ ๋ฆฌ์์ค XMLํ์ผ์ Layoutํด๋์ค๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ด ์ฌ์ฉ๋๋ค.
( ๊ตฌ๊ธ์ ์๋๋ก์ด๋ ๊ฐ๋ฐ ๊ฐ์ด๋๋ผ์ธ์ ๋ฐ๋ฅด๋ฉด xml๋ก ์ ์ธํ๋ ๊ฒ์ด ui์ ๊ตฌ์กฐ๋ฅผ ์๊ฐํํ๊ธฐ๊ฐ ์ฝ๊ณ , ๋ฌธ์ ๋ฐ์ ์ ๋๋ฒ๊น ํ๊ธฐ๋ ์ฝ๊ธฐ ๋๋ฌธ)
3) Android Layout ๊ณตํต์ฌํญ
↓ ์๋ ๋งํฌ๋ ์ดํด๋ ์๋๊ณ ์์ธํ๋ค. ์ฐธ๊ณ !
https://recipes4dev.tistory.com/87?category=658689
์ฐธ๊ณ : https://recipes4dev.tistory.com/66
Layouts - ConstraintLayout, Guideline,LinearLayout(horizontal), LinearLayout(vertical), FrameLayout, TableLayout, TableRow, space
Legacy - GridLayout, ListView, TabHost, RelativeLayout, GridView
โ LinearLayout
https://developer.android.com/reference/android/widget/LinearLayout
: view๋ค์ ์ํ์ ์ผ๋ก๋ ์์ง์ ์ผ๋ก ์ ๋ ฌํ๋ ๋ ์ด์์
android:orientation - ์์ view๋ค์ด row(์ด)์ ํํ๋ก ๋์ผ ๊ฒ์ธ์ง, column(ํ)์ ํํ๋ก ๋์ผ ๊ฒ์ธ์ง. row์ ํํ๋ก ์ธํ ํ๊ณ ์ถ์ผ๋ฉด "horizontal" ์, column์ ํํ๋ก ์ธํ ํ๊ณ ์ถ์ผ๋ฉด "vertical"์ ์ฌ์ฉ.
android:gravity - content ๋ด์์ ๊ฐ์ฒด๊ฐ ์์ ์ ๊ฒฝ๊ณ ๋ด์์ x๋ฐ y์ถ์ด๋์ ์์นํ๋์ง.
https://developer.android.com/guide/topics/ui/layout/linear.html
android:layout_weight- ๋ ๋ฆฝ์ ์ผ๋ก ์์ view์ ์ ์ฉํ ์ ์๋๋ฐ, ์ด ์์ฑ์ ์ค์์ ๋๋ฅผ ํ ๋นํ๊ณ , ํฐ weight๊ฐ์ ๋๋จธ์ง ๋จ์ ๊ณต๊ฐ์ผ๋ก ํ์ฅ๋์ด ์ฑ์ธ ์ ์๋ค.
โ RelativeLayout
https://developer.android.com/guide/topics/ui/layout/relative
: ์์ view๋ฅผ relative(์๋์ ์ธ) position์ ๋ณด์ด๋ view group์ด๋ค. ๊ฐ๊ฐ view์ position์ ๋ค๋ฅธ view์ ์์ฌ๊ฑฐ์ผ๋ก ์ ์๋๋ค. ๋งค์ฐ ๊ฐ๋ ฅํ ์ ์ ์ธํฐํ์ด์ค ๋์์ธ์ ๋งค์ฐ ์ ์ฉํ๋ค. ๊ทธ ์ด์ ๋ ์ค์ฒฉ๋ viewgroup์ ์ ๊ฑฐํ๊ณ ๋ ์ด์์ ๊ณ์ธต๊ตฌ์กฐ๋ฅผ flatํ๊ฒ ์ ์งํ ์ ์์ด์ ์ฑ๋ฅ์ด ํฅ์๋๊ธฐ ๋๋ฌธ์ด๋ค.
// ์์View์์ ฏ๋ค์ด ์๋ก ๊ฐ์ ์๋์ ๋ฐฐ์น ๊ด๊ณ์ ๋ฐ๋ผ ํ๋ฉด์ ํ์๋ ์์น๊ฐ ๊ฒฐ์ ๋๋๋ก ๋ง๋ค์ด์ฃผ๋ Layout ํด๋์ค. ์๋ฅผ ๋ค์๋ฉด A๋ฅผ ํ๋ฉด์ ํ์ํ๊ณ B๋ A์ ์ค๋ฅธ์ชฝ์ ํ์, ๋๋ C๋ฅผ ์ฒซ๋ฒ์งธ ์์์ผ๋ก ๋๊ณ D๊ฐ C์๋์ ์์นํ๋๋ก ๋ฐฐ์น ๋ฑ. ์๋์ ์ธ ์์น๋ฅผ ์ง์ ํ ๋ ๊ทธ ๋์์ด ๋ฐ๋์ RealativeLayout์ ํฌํจ๋ View ์์ ฏ์ด์ด์ผ๋ง ํ๋ ๊ฒ์ ์๋๋ค.
โ FrameLayout
: ์ฃผ๋ก ํ๋์ ์์ View ์์ ฏ๋ง ํ์ํ ๋ ์ฌ์ฉํ๋ layout ํด๋์ค. ํ์ง๋ง ์ค์ง ํ๋์ ์์ view ์์ ฏ๋ง ๊ฐ์ง ์ ์๋ค๋ ์๋ฏธ๋ ์๋๋ค. FrameLayout์ ์ฌ๋ฌ View ์์ ฏ์ ์์์ผ๋ก ์ถ๊ฐํ๋ฉด ๊ฒน์ณ์ง ํํ๋ก ํ์๋๊ณ , ๊ฐ์ฅ ์ต๊ทผ์ ์ถ๊ฐ๋ View ์์ ฏ์ด ๊ฐ์ฅ ์์์ ํ์๋๋ค. ์ด๋ฌํ ํน์ง์ ์ด์ํด ๊ฐ์ฅ ์์์ View ์์ ฏ๋ง ํ์ํ๊ณ ๋๋จธ์ง๋ ๋ณด์ด์ง ์๊ฒ ๋ง๋ฆ์ผ๋ก์จ ํ๋์ ์์ View๋ง ํ์๋๋๋ก ๋ง๋๋ ๊ฒ์ด๋ค.
FrameLayout์ด ๋ง์ด ์ฌ์ฉ๋๋ ์ ์ค ํ ๊ฐ์ง๋ Fragment๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ด๋ค. ํนํ ์ฌ๋ฌ Fragment๋ฅผ ๋์ผํ ์์น ๋ด์์ ๊ต์ฒดํ์ฌ ํ์ํ๊ณ ์ ํ ๋, Fragment์ ์ปจํ ์ด๋ ์ญํ ๋ก์จ FrameLayout์ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
โ TableLayout
: ์์ View ์์ ฏ๋ค์ ํ ์ด๋ธ(ํ๊ณผ ์ด๋ก ๊ตฌ์ฑ) ๋ก ๋๋์ด ํ์ํ๋ layout ํด๋์ค
โ ListView์ GridView
: ์ด๋ฆ์์ ์คํดํ ์ Layout์ด ์๋ ๊ฒ์ผ๋ก ์คํดํ ์ ์์ง๋ง ์์ฐํ viewGroup์ผ๋ก ๋ถํฐ ์์๋ฐ์ Layoutํด๋์ค์ ํ ์ข ๋ฅ. ๋์ผํ ์์ View์์ ฏ์ ๋ด์ฉ๋ง ๋ฌ๋ฆฌํ์ฌ ๋ฐ๋ณต์ ์ผ๋ก ํ์ํด์ผ ํ๋ ๊ฒฝ์ฐ ListView์ GridView๊ฐ ๋งค์ฐ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ ์ ์๋ค.
Text - TextView,EditText
โTextView
https://developer.android.com/reference/android/widget/TextView
: ์๋๋ก์ด๋ UI๋ฅผ ๊ตฌ์ฑํจ์ ์์ด ํ๋ฉด์ ํ ์คํธ๋ฅผ ํ์ํ๋ ๊ธฐ๋ฅ์ ๋ด๋น. ํ ์คํธ์ ์ฐ๊ด๋ ๊ธฐ๋ฅ์ ํฌํจํ๋ Button, EditText์ ๋ถ๋ชจ ํด๋์ค
โEditText
: User๊ฐ ํธ์งํ ์ ์๋ ํ ์คํธ
Button - Button, imageButton, ChipGroup, Chip, CheckBox, RadioGroup, RadioButton, ToggleButton, Switch
โimageButton
: ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉ์๊ฐ ๋๋ฅด๋ฉด ํด๋ฆญ๋๋ ๋ฒํผ์ผ๋ก ๋ณด์ฌ์ค๋ค.
โChipGroup
: ๋ค์์ chip์ holdํ๋ค. ๋ํดํธ๋ก chip๋ค์ ๋ค์์ ๋ผ์ธ์ผ๋ก ์ปดํจํฐ ํ๋ฉด์์ ํ ์คํธ๊ฐ ์ฐจ์งํ๋ ๊ณต๊ฐ์ ์กฐ์ ํ๋ค.
โCheckbox
:์ฒดํฌ๋ฐ์ค๋ ์ฌ์ฉ์๋ก ํ์ฌ๊ธ ํ๋ ๋๋ ์ฌ๋ฌ๊ฐ์ ์ต์ ์ ์ ํํ ์ ์๊ฒ ํ๋ค.
โRadioGroup
: ์ด ํด๋์ค๋ ๋ค์์ radio button ์ธํธ์ ๋ํ ๋ค์ค ์ ์ธ ๋ฒ์๋ฅผ ๋ง๋๋ ๋ฐ ์ฌ์ฉ๋๋ค.
https://yoo-hyeok.tistory.com/5
โRadioButton
: ์ฃผ๋ก ์ฌ๋ฌ์ข ๋ฅ์ ์ ํ ํญ๋ชฉ์์ ํ๊ฐ์ง๋ง ์ ํํ๋ ํํ์ ๋ฒํผ. Radio Button์ ์ฃผ๋ก RadioGroup๋ด์ ์กด์ฌํ๋ค. ๋ผ์ด์ค ๊ทธ๋ฃน ๋ด์ ๋ผ๋์ค ๋ฒํผ์ด ์กด์ฌํ์ฌ์ผ ๋ฆฌ์คํธ ์ค ํ๊ฐ์ง๋ฅผ ์ ํํ ์ ์๋ค.
โToggleButton
: ๋๊ฐ์ง states์ค setting์ ๋ณ๊ฒฝํ๋๋ฐ ์ฌ์ฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด on, off
โSwitch
: ๋ค๋ฅธ ํํ์ toggle button (= slider ํํ)
Widgets - View, ImageView, WebView, VideoView, CalendarView, SeekBar, SearchView, TextureView, Horizontal Divider, Vertical Divider
โView
โImageView
: ImageView๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ฉด์ ์ด๋ฏธ์ง ํ์ผ์ ์ถ๋ ฅํ๋ค.
drawable ๋ฆฌ์์ค ์ด๋ฏธ์ง ๋ฑ๋ก >> ImageView๋ก ์ด๋ฏธ์ง ๋ณด์ฌ์ฃผ๊ธฐ >> ImageView ์์ฑ ์ถ๊ฐ >>์๋ฐ ์์ค์์ ์ด๋ฏธ์ง ๋ณ๊ฒฝ
โWebView
: ์น๋ทฐ๋ ์๋๋ก์ด๋ ํ๋ ์์ ๋ด์ฅ๋ ์น ๋ธ๋ผ์ฐ์ ์ปดํฌ๋ํธ๋ก ๋ทฐ ํํ๋ก ์ฑ์ ์๋ฒ ๋ฉ์ด ๊ฐ๋ฅํ๋ค. ์น ๋ทฐ์ ์ฌ์ฉ๋๋ ๋ธ๋ผ์ฐ์ ธ ์ปดํฌ๋ํธ๋ ์ฐ๋ฆฌ๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์๊ฐํ๋ ์น๋ธ๋ผ์ฐ์ ธ ์์ค์ผ๋ก ์๊ฐํ๋ฉด ๊ณค๋ํ๋ค. ์ผ๋ฐ์ ์ธ ์น ๋ธ๋ผ์ฐ์ ธ๋ฅผ ์๋๋ก์ด๋ OS์ ๋ง๊ฒ ์ผ๋ถ ๊ธฐ๋ฅ๋ค์ ์ ์ธํ๊ณ ์๊ฒ ๋ง๋ ์น๋ธ๋ผ์ฐ์ ธ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๊ณ ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ HTML5 ํธํ์ฑ๋ฑ ๊ธฐ๋ฅ์ ์ ์ฝ์ ๋ง์ด ๊ฐ์ง๊ณ ์๋ค. (← ์ถ์ฒ: https://bcho.tistory.com/1051 [์กฐ๋ํ์ ๋ธ๋ก๊ทธ] )
: WebView ์ค๋ธ์ ํธ๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ ๋ ์ด์์์ ์ผ๋ถ๋ก ์น ์ฝํ ์ธ ๋ฅผ ํ์ํ ์ ์์ง๋ง, ์์ ํ ๊ฐ๋ฐ๋ ๋ธ๋ผ์ฐ์ ์ ์ผ๋ถ ๊ธฐ๋ฅ์ ๋ถ์กฑํ๋ค. WebView๋ UI์ ๋ํ ์ ์ด๋ ฅ ํฅ์๊ณผ ์ฑ์ฉ์ผ๋ก ํน๋ณํ ์ค๊ณ๋ ํ๊ฒฝ์ ์น ํ์ด์ง๋ฅผ ๋ด์ฅํ ์ ์๋ ๊ณ ๊ธ ๊ตฌ์ฑ ์ต์ ์ด ํ์ํ ๋ ์ ์ฉํ๋ค.
โVideoView
https://academy.realm.io/kr/posts/android-videoview/
: ๋น๋์ค ํ์ผ์ ๋ณด์ฌ์ค๋ค. VideoView๋ ๋ค์ํ ์์์์ ์์์ ๋ถ๋ฌ์ฌ ์ ์๋ ๋์์ ์ฌ์ ์ ๋ด ์์ ฏ์ด๋ค. MediaController๋ผ๋ UI๋ฅผ ์ ๊ณตํ๊ณ scaling ๊ณผ tinting๋ฑ ๋ค์ํ ๋์คํ๋ ์ด ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ์์ด ๊ฐํธํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
โCalendarView
: ์ด ํด๋์ค๋ ์บ๋ฆฐ๋ ์์ ฏ์ด๋ค. ์บ๋ฆฐ๋๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ๋ ์ง๋ฅผ ์ ํํ ์ ์๋ค. ์ด ๋ฌ๋ ฅ์์ ์ง์๋๋ ๋ ์ง ๋ฒ์๋ ๊ตฌ์ฑํ ์ ์๋ค.
โSeekBar
https://postiveemblem.tistory.com/166
: ์์ง์๊ฐ๋ฝ์ผ๋ก dragํ๋ ๊ฒ์ ์ถ๊ฐํ progressbar ํ์ฅ๋ฒ์ ์ด๋ค.
: ์ฌ๋ผ์ด๋ ํํ์ ๊ฒ์ด์ง ๋ฐ๋ฅผ ๋งํ๋ค. UI์์์ ์ฌ์ฉ์๊ฐ ์ฌ๋ผ์ด๋๋ฅผ ์์ง์ด๋ฉด ๊ทธ progress ๊ฐ์ ๊ฐ์ ธ์ ํ์ฉํ ์ ์๋ค. ์๋์ด๋ ๋ฐ๊ธฐ ์ธ์๋ ๋ค์ํ ๊ณณ์ ์ฌ์ฉ๋๋ค.
์ฃผ๋ก์ฌ์ฉ์์ฑ (max = seekbar์ ์ต๋๊ฐ , thumb =seekbar์ ์ปค์ ์ด๋ฏธ์ง)
โSearchView
https://developer.android.com/reference/android/widget/SearchView
https://salix97.tistory.com/231
: SearchView๋ ์ก์ ๋ฐ์ ๊ฒ์๋ฉ๋ด๋ฅผ ๋ง๋ค๊ฑฐ๋, submit๋ฒํผ ์์ด ์ฌ์ฉ์๊ฐ ์ํฐ๋ฅผ ๋๋ ์ ๋ ๋ฐ๋ก ๊ฒ์์ด ๋๊ฒ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ์ ์ฌ์ฉํ ์ ์๋ค.
โTextureView
https://developer.android.com/reference/android/view/TextureView
https://aroundck.tistory.com/2075
:TextureView๋ ๋น๋์ค๋ opengl ์ฅ๋ฉด๊ฐ์ ์ฝํ ์ธ ์คํธ๋ฆผ์ ํ์ํ๋๋ฐ ์ฌ์ฉ๋ ์ ์๋ค. ์ฝํ ์ธ ์คํธ๋ฆผ์ remoteํ๋ก์ธ์ค ์์ ์ฌ ์๋ ์๋ค. ํ ์ค์ฒ๋ทฐ๋ ํ๋์จ์ด ๊ฐ์ ์ฐฝ์์๋ง ์ฌ์ฉํ ์ ์๋ค. ์ํํธ์จ์ด๋ก ๋ ๋๋งํ ๋ ํ ์ค์ฒ๋ทฐ๋ ์๋ฌด๊ฒ๋ ๊ทธ๋ฆด ์ ์๋ค.
surfaceview์ ๋ฌ๋ฆฌ ํ ์ค์ฒ๋ทฐ๋ ๋ณ๋์ ์ฐฝ์ ๋ง๋ค์ง ์๊ณ ์ผ๋ฐ ๋ทฐ๋ก ๋์ํ๋ค. ์ด๋ฌํ ์ฃผ์ ์ฐจ์ด์ ์ ํ ์ค์ฒ๋ทฐ๋ฅผ ์ด๋, ๋ณํ, ์ ๋๋ฉ์ด์ ๋ฑ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
: textureview๋ view๊ฐ์ฒด๋ค ์ค ๊ฐ์ฅ ๋ณต์กํ๋ฉฐ, View์ surfaceTexture๋ฅผ ๊ฒฐํฉํ ๊ฒ์ด๋ค.
https://ggeutzzang.tistory.com/12
โHorizontal Divider,Vertical Divider
: DividerItemDecoration์ RecycleView์ด๋ค. LinearLayoutManager์ ํญ๋ชฉ ์ฌ์ด์ ๊ตฌ๋ถ์๋ก ์ฌ์ฉํ ์ ์๋ ํญ๋ชฉ์ด๋ค.
horizontal(์ํ)๋ฐฉํฅ๊ณผ, vertical(์์ง) ๋ฐฉํฅ ๋ชจ๋๋ฅผ ์ง์ํ๋ค.
Containers - Spinner, RecycleView, ScrollView, HorizontalScrollView, ViewPager, CardView, AppBarLayout, BottomAppBar, NavigationView, BottomNavigation, Toolbar, Tablayout, TabItem, ViewStub
โSpinner
https://developer.android.com/guide/topics/ui/controls/spinner
: ์คํผ๋๋ ์ธํธ์์ ํ๋์ ๊ฐ์ ๋น ๋ฅด๊ฒ ์ ํํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค. ๋ํดํธ๋ก ํ์ฌ ์ ํ๋์ด์๋ ๊ฐ์ ๋ณด์ฌ์ค๋ค. ์คํผ๋๋ฅผ ๋๋ฅด๋ฉด ๋๋กญ๋ค์ด ๋ฉ๋ด๋ฅผ ๋ณด์ฌ์ค๋ค. ๋ฉ๋ด๋ ์ ํ๊ฐ๋ฅํ ๋ค๋ฅธ ๊ฐ๋ค์ด๋ค.
โRecycleView
https://developer.android.com/jetpack/androidx/releases/recyclerview
https://recipes4dev.tistory.com/154
: ๋ง์ ์์ ๋ฐ์ดํฐ ์งํฉ์ ์ ํ๋ ์์ญ ๋ด์์ ์ ์ฐํ๊ฒ ํ์ํ ์ ์๋๋ก ๋ง๋ค์ด์ฃผ๋ ์์ ฏ์ด๋ค.
: ์ฌ์ฉ์๊ฐ ๊ด๋ฆฌํ๋ ๋ง์ ์์ ๋ฐ์ดํฐ ์งํฉ์ ๊ฐ๋ณ ์์ดํ ๋จ์๋ก ๊ตฌ์ฑํ์ฌ ํ๋ฉด์ ์ถ๋ ฅํ๋ ๋ทฐ๊ทธ๋ฃน์ด๋ฉฐ, ํ ํ๋ฉด์ ํ์๋๊ธฐ ํ๋ ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ์คํฌ๋กค ๊ฐ๋ฅํ ๋ฆฌ์คํธ๋ก ํ์ํด์ฃผ๋ ์์ ฏ์ด๋ค. (๋ฆฌ์คํธ ๋ทฐ์ ์ฌ์ฉ๋ฐฉ์ ์ ์ฌ , ๋ฆฌ์คํธ๋ทฐ์ ์ ์ฐํจ๊ณผ ์ฑ๋ฅ์ ๋ํ ๊ฒ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.)
โScrollView
https://developer.android.com/reference/android/widget/ScrollView
: ์์ง(์์๋)๋ก ์คํฌ๋กคํ๋๊ธฐ๋ฅ
์คํฌ๋กค ๋ทฐ์๋ ํ๋์ child๋ง ๋ ์ ์๋ค.
โHorizontalScrollView
: ์ํ์ผ๋ก ์คํฌ๋กค ํ๋ ๊ธฐ๋ฅ
โViewPager
https://recipes4dev.tistory.com/148
: ์ค์์ดํ๋ฅผ ํตํด ์ปจํ ์ธ ์ ํ์ ํ ์ ์๋๋ก ๋ง๋ค์ด์ฃผ๋ ์์
๋ฐ์ดํฐ๋ฅผ ํ์ด์ง ๋จ์๋ก ํ์ํ๊ณ , flip์ ํตํด ํ์ด์ง๋ฅผ ์ ํํ ์ ์๋๋ก ๋ง๋ค์ด์ฃผ๋ ์ปจํ ์ด๋.
์์ฒด์ ์ผ๋ก ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ๊ธฐ๋ฅ์ ๊ธฐ์ง์ง๋ ์๊ณ , ์ฌ๋ฌ ์ข ๋ฅ์ ๋ทฐ ์์ ฏ์ ์ฌ์ฉํ์ฌ ๊ฐ ๋ทฐํ์ด์ ์ ํ์ด์ง๋ฅผ ๊ตฌ์ฑํ๋ค. ๋ทฐํ์ด์ ๊ฐ ๋ทฐ๊ทธ๋ฃน์ผ๋ก๋ถํฐ ์์๋ ๊ฒ์ ๋ณด๋ฉด, ์ปจํ ์ด๋ ์ญํ ์ ์ํํ๋ค๋ ๊ฒ์ ์ ์ถ ๊ฐ๋ฅ!
โCardView
https://thepassion.tistory.com/319
https://developer.android.com/jetpack/androidx/releases/cardview
: ์๋ ๊ทธ๋ฆผ ์ฒ๋ผ ๊ณก์ ํ ๋๋ฆฌ์ ๊ทธ๋ฆผ์๋ฅผ ํ์ํ ์ ์๋ ํํ์ ๋ ์ด์์์ด๋ค.
โAppBarLayout
https://developer.android.com/reference/com/google/android/material/appbar/AppBarLayout
https://readystory.tistory.com/127
: material designs app bar concept์ ํน์ง์ ์ํํ๋ ์์ง LinearLayout.
: ์๋๋ก์ด๋๋ ์๋ ActionBar๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋๊ณ ์์์ง๋ง, ์ก์ ๋ฐ๋ ์๋๋ก์ด๋ API ๋ฒ์ ๋ง๋ค ๋ค๋ฅธ ๊ธฐ๋ฅ๊ณผ ๋ค๋ฅธ ๋์์ ์ ๊ณตํด ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉ์์๊ฒ ์ผ๊ด๋ UX๋ฅผ ์ ๊ณตํ๋๋ฐ ๋ถํธํจ์ด ์์๋ค. ์ด์ ๋ํ ํด๊ฒฐ์ฑ ์ผ๋ก ๊ตฌ๊ธ์ material design ํจํค์ง์ ์๋ AppBarLayout๊ณผ ToolBar์ ์ ์ํ๋ค.
Appbarlayout์ vertical LinearLayout์ ์์ํ ๋ ์ด์์์ผ๋ก, ํนํ๋ ์คํฌ๋กค ์ ์ค์ฒ์ ๋ํด ๋ช ๊ฐ์ง ๋์์ ์ ์ฉํ ์ ์๋ค.
โBottomAppBar
https://developer.android.com/reference/com/google/android/material/bottomappbar/BottomAppBar
: ํ์์ผ๋ก ์ฌ์ฉ์ด ์ฉ์ดํ๊ฒ๋ ๋ค๋น๊ฒ์ด์ ๋ฉ๋ด์ ๋ค์ํ ์ต์ ๋ค์ ํ๋จ์ผ๋ก ๋ด๋ฆฐ ์คํ์ผ์ ๋งํ๋ค.
โNavigationView
https://developer.android.com/reference/com/google/android/material/navigation/NavigationView
:์ดํ๋ฆฌ์ผ์ด์ ์ ํ์ค ๋ค๋น๊ฒ์ด์ ๋ฉ๋ด๋ฅผ ๋ณด์ฌ์ค๋ค. ๋ณดํต NavigationView๋ DrawerLayout ์์ ์์นํ๊ฒ๋๋ค.
โBottomNavigation
: bottom์ ๋ค๋น๊ฒ์ด์ ๋ฐ๋ฅผ ๋ํ๋ธ๋ค. bottom ๋ค๋น๊ฒ์ด์ ๋ฐ๋ ์ฌ์ฉ์๋ก ํ์ฌ๊ธ ํ์๋ฐ ๋ทฐ๋ฅผ ๋ฐ๊พธ๋ ๊ฒ์ ์ฉ์ดํ๊ฒ ํ๋ค. ์์ฉํ๋ก๊ทธ๋จ์ 3-5๊ฐ์ง์ top-level destinations ์ด ์์๋ ์ฌ์ฉํ๋ค.
โToolbar
https://developer.android.com/reference/android/widget/Toolbar
https://recipes4dev.tistory.com/149
: ์ฑ์์ ๊ฐ์ฅ ์ค์ํ ์ก์ ๋๋ ๊ฐ์ฅ ์์ฃผ ์ฌ์ฉ๋๋ ์ก์ ๋ค์ ์ ๊ณตํ๋ AppBar์ ๋ง๋ค๋ ์ฌ์ฉํ๋ค.
โTablayout
https://developer.android.com/reference/com/google/android/material/tabs/TabLayout
https://recipes4dev.tistory.com/147
:์กฐ๊ธ ๊ฐํธํ๊ฒ Tab์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค.
ํญ์ ํ์ํ ์ ์๋ ์ํ ๋ ์ด์์์ ์ ๊ณตํ๋ค.
โViewStub
https://developer.android.com/reference/android/view/ViewStub
https://www.charlezz.com/?p=19977
https://sites.google.com/site/endihom/home/programming-language/android/article/layout-tricks-stubs
: ViewStub์ด๋ ์ฌ์ด์ฆ๊ฐ ์๋ ๋ณด์ด์ง ์๋ ๋ทฐ(=์ ๋ก ํฌ๊ธฐ ๋ทฐ)๋ก ๋ฐํ์์์ ๋ฆ์ ์ ๊ฐ(lazy-inflate)๋ฅผ ์ํ ๋ ์ฌ์ฉํ ์ ์๋ค.
Google- AdView, MapView
โAdView
https://developers.google.com/admob/android/banner?hl=ko
: ๋ฐฐ๋ ๊ด๊ณ ๋ฅผ ๊ฒ์ฌํ๋ ค ํ ๋, ๊ด๊ณ ๋ฅผ ๊ฒ์ฌํ Activity ๋๋ Fragment ๋ ์ด์์์ AdView๋ฅผ ๋ฃ๋๋ค.
ํ์ ์์ฑ์ผ๋ก๋- ads:adSize , ads:adUnitId๊ฐ ์๋ค.
โMapView
: fragment์์ ๊ตฌ๊ธ ๋งต์ ์ฌ์ฉํ ๋
'Android' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Android::LifeCycle ํ์ฉํ์ฌ App๋ง๋ค๊ธฐ (0) | 2020.07.21 |
---|---|
Android::Awesome UI (0) | 2020.07.14 |
Android:: RelativeLayout ๊ณผ ConstraintLayout์ ์ฐจ์ด (0) | 2020.07.07 |
Android:: TableLayout ๊ณผ GridLayout์ ์ฐจ์ด์ ๊ณ์ฐ๊ธฐ View ๋ง๋ค๊ธฐ (0) | 2020.07.07 |
Android::Manifest (1) | 2020.07.01 |
๋๊ธ