TAB_VIEWPAGER
https://developer.android.com/reference/com/google/android/material/tabs/TabLayout
ViewPager
TabLayout方式
- 动态
1 | TabLayout tabLayout = ...; |
静态
1
2
3
4
5
6
7
8
9
10
11
12<com.google.android.material.tabs.TabLayout
android:layout_height="wrap_content"
android:layout_width="match_parent">
<com.google.android.material.tabs.TabItem
android:text="@string/tab_text"/>
<com.google.android.material.tabs.TabItem
android:icon="@drawable/ic_android"/>
</com.google.android.material.tabs.TabLayout>
滑动TAB
1 | <androidx.viewpager.widget.ViewPager |
设置Tab
1 |
|
默认设置
1
2mTabLayout.getTabAt(roomType).select();
viewpager.setCurrentItem(1);
自定义TabItem
tab_item.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv_item_title"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center_horizontal"
android:background="@drawable/bg_tab_item_select"
android:gravity="center"
android:textColor="@drawable/bg_tab_item_select_txt"
android:textSize="@dimen/text_size_14" />
<View
android:id="@+id/view_line"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/dimen_10"
android:layout_weight="1"
android:background="@android:color/darker_gray" />
</LinearLayout>
1 | tabLayout = findViewById(R.id.tb_layout); |
https://www.jianshu.com/p/ed129686f2cc
https://blog.csdn.net/android_zhengyongbo/article/details/74726176
修改指示器颜色
https://codeday.me/bug/20170629/35704.html
设置Tab选择背景
https://blog.csdn.net/jdsjlzx/article/details/52171075
首先设置
tabGravity fill模式 center是居中
通过layer-list设置间距
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true">
<layer-list>
<item>
<shape>
<solid android:color="@android:color/transparent" />
</shape>
</item>
<item android:left="@dimen/dimen_10" android:right="@dimen/dimen_10">
<shape android:shape="rectangle">
<corners android:radius="3dp" />
<solid android:color="#ffa2cb79" />
</shape>
</item>
</layer-list>
</item>
<item >
<layer-list>
<item>
<shape>
<solid android:color="@android:color/transparent"></solid>
</shape>
</item>
<item android:left="@dimen/dimen_10" android:right="@dimen/dimen_10">
<shape android:shape="rectangle">
<corners android:radius="3dp" />
<solid android:color="#ffdddddd" />
</shape>
</item>
</layer-list>
</item>
</selector>
ViewPager2
migration
https://developer.android.com/training/animation/screen-slide-2#kotlin
https://developer.android.com/training/animation/vp2-migration
https://github.com/android/views-widgets-samples/tree/master/ViewPager2
1 | <androidx.viewpager2.widget.ViewPager2 |
1 | view_pater2.adapter = ScreenSlidePagerAdapter(this) |
1 | private inner class ScreenSlidePagerAdapter(fa: Fragment) : FragmentStateAdapter(fa) { |
TAB_VIEWPAGER
https://noteforme.github.io/2017/12/26/TAB_VIEWPAGER/