码迷,mamicode.com
首页 > 其他好文 > 详细

TabLayout+ViewPager实现标签卡效果

时间:2017-12-21 21:50:22      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:linear   pack   parent   syn   文件   res   manage   实现   super   

转载请注明原文地址:http://www.cnblogs.com/yanyojun/p/8082391.html

代码已经上传至Github:https://github.com/YanYoJun/ViewPagerDemo


 

先看效果

技术分享图片

 

1、布局文件

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:app="http://schemas.android.com/apk/res-auto"
 4     xmlns:tools="http://schemas.android.com/tools"
 5     android:layout_width="match_parent"
 6     android:layout_height="match_parent"
 7     android:orientation="vertical"
 8     tools:context="com.plbear.yyj.myapplication.MainActivity">
 9 
10     <android.support.design.widget.TabLayout
11         android:id="@+id/tab"
12         android:layout_width="match_parent"
13         android:layout_height="40dp"
14         app:tabGravity="fill"
15         app:tabIndicatorColor="#4978ef"
16         app:tabIndicatorHeight="2dp"
17         app:tabMode="scrollable"
18         app:tabSelectedTextColor="#4978ef"
19         app:tabTextColor="#222222"></android.support.design.widget.TabLayout>
20 
21     <android.support.v4.view.ViewPager
22         android:id="@+id/view_pager"
23         android:layout_width="match_parent"
24         android:layout_height="wrap_content"></android.support.v4.view.ViewPager>
25 
26 </LinearLayout>

2、代码实现

 1 package com.plbear.yyj.myapplication
 2 
 3 import android.os.Bundle
 4 import android.support.design.widget.Snackbar
 5 import android.support.design.widget.TabLayout
 6 import android.support.v4.app.Fragment
 7 import android.support.v4.app.FragmentPagerAdapter
 8 import android.support.v7.app.AppCompatActivity
 9 import android.view.Menu
10 import android.view.MenuItem
11 
12 import kotlinx.android.synthetic.main.activity_main.*
13 
14 class MainActivity : AppCompatActivity() {
15 
16     var mFragList = ArrayList<Fragment>()
17     var adapter = object:FragmentPagerAdapter(supportFragmentManager){
18         override fun getItem(position: Int): Fragment {
19             return mFragList[position]
20         }
21 
22         override fun getCount(): Int {
23             return 2
24         }
25     }
26 
27     override fun onCreate(savedInstanceState: Bundle?) {
28         super.onCreate(savedInstanceState)
29         setContentView(R.layout.activity_main)
30         initViewPager() //先将各个fragment加入到viewpager中
31         initTabLayout(); //初始化tablayout
32     }
33 
34 
35     fun initTabLayout(){
36         tab.setupWithViewPager(view_pager)
37         tab.setTabsFromPagerAdapter(adapter)
38         tab.tabMode = TabLayout.MODE_FIXED
39         tab.getTabAt(0)?.setText("第一页")
40         tab.getTabAt(1)?.setText("第二页")
41     }
42 
43     fun initViewPager(){
44         mFragList.add(Fragment1())
45         mFragList.add(Fragment2())
46 
47         view_pager.adapter = adapter
48     }
49 
50 }

这里需要注意点,需要先将setupWithViewPager和tablayout绑定起来,然后再初始化tab的标签页,这个非常重要,否则会造成tablayout中的文字显示不出来。

TabLayout+ViewPager实现标签卡效果

标签:linear   pack   parent   syn   文件   res   manage   实现   super   

原文地址:http://www.cnblogs.com/yanyojun/p/8082391.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!