2020. 12. 30. 21:22ใ๐ฑAndroid/๐ฉ๐ป๐ป Android ๊ฐ๋ฐ ์ผ์ง
์ด์ ๊ธ์์ Fragment์ ViewPager์ ์ด์ฉํ์ฌ TabLayout ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์์ต๋๋ค.
์ด๋ฒ ๊ธ์์๋ ์๋ ์ฌ์ง๊ณผ ๊ฐ์ Round ๋ TabLayout ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฐํด๋๋ฆฌ๋ ค๊ณ ํฉ๋๋ค!
TabLayout ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํด ์ ๋ชจ๋ฅด์๊ฒ ๋ค๋ฉด !? ์๋ ๊ธ์ ๋จผ์ ์ฝ๊ณ ์ค์๋ ๊ฑธ ์ถ์ฒ ๋๋ ค์ ๐๐
๊ธฐ๋ณธ 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๋ฅผ ์ง์ ๊ตฌํํ๋ ๊ฒ๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค : )
'๐ฑ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 |