TabLayout+ViewPager实现标签卡效果

转载请注明原文地址: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中的文字显示不出来。

时间: 2024-07-30 10:19:28

TabLayout+ViewPager实现标签卡效果的相关文章

Android 导航条效果实现(六) TabLayout+ViewPager+Fragment

TabLayout 一.继承结构 public class TabLayout extends HorizontalScrollView java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.FrameLayout ? android.widget.HorizontalScrollView ? android.support.design.widget.TabLayout 二.TabLayou

使用FragmentTabHost+TabLayout+ViewPager实现双层嵌套Tab

大多数应用程序都会在底部使用3~5个Tab对应用程序的主要功能进行划分,对于一些信息量非常大的应用程序,还需要在每个Tab下继续划分子Tab对信息进行分类显示. 本文实现采用FragmentTabHost+TabLayout+ViewPager实现双层嵌套Tab,实现原理如下: 第一层Tab:FragmentTabHost + Fragment; 第二层Tab:在第一层的Fragment中使用TabLayout和ViewPager实现. 第一层Tab实现: 1.布局文件activity_main

关于TabLayout+ViewPager组合实现多页面滑动

转载请注明出处:http://blog.csdn.net/ht_android/article/details/46647711 在android提供的design library中新增了一个控件,叫TabLayout,它继承自HorizontalScrollView,可以实现android中多页面滑动切换效果.但是一般需要和ViewPager组合使用,官方API地址:https://developer.android.com/reference/android/support/design/w

Android开发之漫漫长途 Fragment番外篇——TabLayout+ViewPager+Fragment

该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解Android 卷Ⅰ,Ⅱ,Ⅲ>中的相关知识,另外也借鉴了其他的优质博客,在此向各位大神表示感谢,膜拜!!! 前言 上一篇文章中我们使用底部导航+Fragment的方式实现了Android主流App中大都存在的设计.并命名其为"Fragment最佳实践",作为想到单独使用Fragment的用

自定义View 之利用ViewPager 实现画廊效果(滑动放大缩小)

自定义View 之利用ViewPager 实现画廊效果(滑动放大缩小) 转载请标明出处: http://blog.csdn.net/lisdye2/article/details/52315008 本文出自:[Alex_MaHao的博客] 项目中的源码已经共享到github,有需要者请移步[Alex_MaHao的github] 基本介绍 画廊在很多的App设计中都有,如下图所示: 该例子是我没事的时候写的一个小项目,具体源码地址请访问https://github.com/AlexSmille/Y

ViewPager切换动画效果修改

比如我们点击向右按钮,希望左边的view移动过来,有个平移效果,但是用系统默认的ViewPager切换的时候,会一闪而过.这是为什么呢? 因为viewpager外面其实有个scrollview,你可以使用反射的方法,设置他的scroll时间.代码如下. 主要代码: //第一步: LayoutInflater mInflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v

TabLayout+ViewPager 标题不显示问题

第一次用TabLayout+ViewPager 组合在布局中写好了三个标题预览没问题而且也设置了 app:tabIndicatorColor="@color/colorAccent" app:tabSelectedTextColor="@color/colorAccent"app:tabTextColor="@color/button_nav_font_default"三个属性都设置,当运行在手机上的时候显示空白刚开始以为是手机问题(华为)换了小

【笔记】WPF实现类似安卓ViewPager引导界面效果及问题汇总

最近在开发项目的首次使用引导界面时,遇到了问题,引导界面类似于安卓手机ViewPager那样的效果,希望通过左右滑动手指来实现切换不同页面,其间伴随动画. 实现思路: 1.界面布局:新建一个UserControl,最外层为Grid,两行一列,内嵌一个Canvas和StackPanel.Canvas中放一个StackPanel用于存放大图列表,外层的StackPanel用于存放RadioButton组,Xaml代码如下: 1 <Grid x:Name="grid"> 2 &l

TabLayout+ViewPager+Fragment 快速实现标题切换效果

首先呢,这个控件使用起来并不难,算是非常简单的了,不过这个 TabLayout 的 setupWithViewPager 方法有坑,要注意了,具体什么坑,自己踩过才有映像,我这里就不说了,就介绍一下如何使用吧. 在 FragmentOne 中的布局文件里面添加一个 ViewPager 和一个 TabLayout,代码如下: <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:and