2020. 12. 30. 21:22ใ๐ฑAndroid/๐ฉ๐ปโ๐ป Android ๊ฐ๋ฐ ์ผ์ง
์ด์ ๊ธ์์ Fragment์ ViewPager์ ์ด์ฉํ์ฌ TabLayout ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์์ต๋๋ค.
์ด๋ฒ ๊ธ์์๋ ์๋ ์ฌ์ง๊ณผ ๊ฐ์ Round ๋ TabLayout ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฐํด๋๋ฆฌ๋ ค๊ณ ํฉ๋๋ค!

TabLayout ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํด ์ ๋ชจ๋ฅด์๊ฒ ๋ค๋ฉด !? ์๋ ๊ธ์ ๋จผ์ ์ฝ๊ณ ์ค์๋ ๊ฑธ ์ถ์ฒ ๋๋ ค์ ๐๐
[Android/Kotlin] ๊ธฐ๋ณธ TabLayout ๋ง๋ค์ด๋ณด๊ธฐ
์ ์ฌ์ง๊ณผ ๊ฐ์ด ์๋จ์ Tab๋ฐ๊ฐ ์กด์ฌํ์ฌ ์คํฌ๋กค ์ Tab์ ๋ง๋ ํ๋ฉด์ด ๋ณด์ฌ์ง๋ ํ๋ฉด ๊ตฌ์ฑ์ ๋ง์ด ๋ณด์ จ์ ๊ฑฐ๋ผ๊ณ ์๊ฐํด์. ์ด๋ฒ ํฌ์คํ ์์๋ ์๋จ์ TabLayout์ด ์กด์ฌํ๋ ๊ธฐ๋ณธ TabLayout์ ๋ง๋ค์ด
yunaaaas.tistory.com
๊ธฐ๋ณธ TabLayout์ ๋ง๋๋ ๋ฐฉ์์ ๋ชจ๋ ๋์ผํฉ๋๋ค. ์ถ๊ฐ์ ์ธ ๋ถ๋ถ๋ง ์ค๋ช ํด๋๋ฆด๊ฒ์!
drawable ํด๋์ tablayout.xml (tablayout_background) ์ถ๊ฐ ํด์ฃผ๊ธฐ
Round Tab์ ๋ง๋ค๊ธฐ์ํด TabLayout์ Background๋ฅผ ๋ด๋นํ Drawable์ ํ๋ ์ถ๊ฐํด์ค๋๋ค.
<solid android:color = ""/> ๋ถ๋ถ์ ์ํ๊ณ ์ํ๋ color ์์ ์ถ๊ฐํ์ฌ ๋ฃ์ด์ฃผ์๋ฉด ๋ฉ๋๋ค. ์ ๋ ๊ธฐ๋ณธ color๋ฅผ ์ถ๊ฐํด์ฃผ์์ต๋๋ค.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners android:radius="18dp"/>
<solid android:color="@color/colorPrimaryDark"/>
</shape>
drawable ํด๋์ selected_tab.xml (์ ํ๋์ด์ง tab_background) ์ถ๊ฐ ํด์ฃผ๊ธฐ
์ด๋ฒ์๋ ์ ํ๋ Round Tab์ Background๋ฅผ ๋ด๋นํ Drawable์ ์ถ๊ฐํด์ฃผ๋๋ก ํ๊ฒ ์ต๋๋ค.
์ ๋ ์์ ๋๋น๋ฅผ ์ํด #ffffff ์์ธ White๋ฅผ ๋ฃ์ด์ฃผ์์ต๋๋ค.
์ฌ๊ธฐ์ ์ฃผ์ํ์ค ์ ์ ๋ฅ๊ตด๊ธฐ๋ฅผ ๋ด๋นํ๋ Radius๋ฅผ TabLayout.xml๊ณผ ๋์ผํ๊ฒ ํด์ฃผ์ ์ผ ๋งค๋๋ฝ์ต๋๋ค.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners android:radius="18dp"/>
<solid android:color="#ffffff"/>
</shape>
drawable ํด๋์ tab_layout_selector.xml (์์์ ๋ง๋ xml ์ฐ๊ฒฐํด์ฃผ๊ธฐ) ์ถ๊ฐ ํด์ฃผ๊ธฐ
์ ํ๋ Tab์ selected_tab.xml, ๊ทธ๋ ์ง ์์ Tab์ tablayout.xml ๊ณผ ์ฐ๊ฒฐ ํด์ฃผ๋ Drawable์ ์ถ๊ฐํด์ค๋๋ค.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/selected_tab"
android:state_selected="true"/>
<item
android:drawable="@drawable/tablayout"
android:state_selected="false"/>
</selector>
activity_main.xml TabLayout ๋ถ๋ถ ์์ ํ๊ธฐ
์ด์ activity_main.xml์์ TabLayout์ ์์์ ๋ง๋ค์๋ tab_layout_selector.xml๊ณผ ์ฐ๊ฒฐํด์ฃผ๋๋ก ํ๊ฒ ์ต๋๋ค.
<com.google.android.material.tabs.TabLayout
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_marginTop="10dp"
android:id="@+id/Tab"
android:background="@drawable/tablayout"
app:tabMode="scrollable"
app:tabBackground="@drawable/tab_layout_selector"
app:tabSelectedTextColor="@color/colorPrimaryDark"
app:tabPaddingStart="16dp"
app:tabPaddingEnd="16dp"
app:tabIndicatorHeight="0dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"/>
- app:tabBackground : ์ ํ๋ Tab์ Background ์ ์ง์
- android:background : TabLayout ์ ์ฒด์ Background ์ ์ง์
- app:tabSelectedTextColor : ์ ํ๋ Tab์ Text ์ ์ง์
์ฐจ๊ทผ ์ฐจ๊ทผ ๋ฐ๋ผํ์๊ฒ ๋๋ฉด ๋ค์๊ณผ ๊ฐ์ Round TabLayout์ด ์์ฑ๋ฉ๋๋ค : )

_ ์ฐธ๊ณ
TabLayout์์ Dot Indicator์ ์ง์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ด ์ ์๊ฐ๋ ํฌ์คํ ์ ๋๋ค.
์ฐธ๊ณ ํ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ์๋ Dot Indicator๋ฅผ ์ง์ ๊ตฌํํ๋ ๊ฒ๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค : )
4 steps to Android Dot TabItem
Dot presentation to TabLayout is common in many apps. There are only 4 steps to configure the dots! Click to read more. ๐
itnext.io
'๐ฑAndroid > ๐ฉ๐ปโ๐ป Android ๊ฐ๋ฐ ์ผ์ง' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Android/Kotlin] ๊ฐ๋จํ Animation Transition ๊ตฌํํ๊ธฐ (0) | 2021.01.02 |
---|---|
[Android/Kotlin] ๊ธฐ๋ณธ TabLayout ๋ง๋ค์ด๋ณด๊ธฐ (0) | 2020.12.30 |
[Android/Kotlin] Zxing ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก QR์ฝ๋ ์ค์บ๋ ๋ง๋ค๊ธฐ (1) | 2020.12.30 |