버튼으로 만들면 간단하지만 기존에 이미 TabLayout으로 사용했던것이여서 디자인을 변경해보자
<com.google.android.material.tabs.TabLayout
android:id="@+id/msg_input_tabLayout"
android:layout_width="250dp"
android:layout_height="32dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:tabBackground="@drawable/tab_color_selector"
app:tabSelectedTextColor = "@color/white"
android:layout_marginLeft="20dp"
app:tabIndicatorHeight="0dp"
app:tabGravity="fill"
android:clipToPadding="false"
app:tabRippleColor="@android:color/transparent"
app:tabTextColor="@color/black">
<com.google.android.material.tabs.TabItem
android:id="@+id/tabItem1"
android:layout_width="74dp"
android:layout_height="32dp"
android:background="@drawable/bg_circle_w"
android:text="부재중"
/>
<com.google.android.material.tabs.TabItem
android:id="@+id/tabItem2"
android:layout_width="122dp"
android:layout_height="32dp"
android:text="고객 정상 수령" />
</com.google.android.material.tabs.TabLayout>
이대로 사용하면
이런식으로 붙어서 디자이너님이 세팅한 모양이 안나온다.
for (i in 0 until binding.msgInputTabLayout.tabCount) {
val tab = (binding.msgInputTabLayout.getChildAt(0) as ViewGroup).getChildAt(i)
val p = tab.layoutParams as ViewGroup.MarginLayoutParams
p.setMargins(0, 0, 50, 0)
tab.requestLayout()
}
인터넷블로그를 열심히 뒤져 get한 코드를 넣어보자
이런식으로 탭레이아웃간의 사이를 멀어지게 할 수 있다.
탭레이아웃 ui
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/success_tab_layout1" android:state_selected="true"/>
<item android:drawable="@drawable/success_tab_layout2"/>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/ripple">
<item android:state_focused="false" android:state_pressed="false">
<shape>
<solid android:color="@color/color_2742B2"/>
<stroke android:color="@color/color_2742B2"
android:width="2dp"/>
<corners android:radius="16dp" />
</shape>
</item>
</ripple>
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/ripple">
<item android:state_focused="false" android:state_pressed="false">
<shape>
<solid android:color="@color/white"/>
<stroke android:color="@color/color_CED4DA"
android:width="2dp"/>
<corners android:radius="16dp" />
</shape>
</item>
</ripple>
'프로그래밍 > kotlin' 카테고리의 다른 글
[kotlin] api 통신시 TimeOut error (0) | 2023.12.18 |
---|---|
코틀린 recyclerView item position 변경 이벤트 만들기 (0) | 2023.07.27 |
[Kotlin] switch track_selector (0) | 2023.07.13 |
[Kotlin] 뷰 이미지 리사이징 (0) | 2023.07.13 |
[Kotlin] drag and drop event (드래그드롭이벤트) (0) | 2023.07.13 |