• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > TabLayout和ViewPager简单实现页卡的滑动,tablayoutviewpager

TabLayout和ViewPager简单实现页卡的滑动,tablayoutviewpager

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了tablayout viewpager,viewpager实现轮播,viewpager实现引导页,viewpager实现画廊,viewpager实现导航等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

TabLayout和ViewPager简单实现页卡的滑动,tablayoutviewpager


首先需要在当前的module中的build Gradle的 dependencies中加入以下句子

compile 'com.android.support:design:23.0.1'

因为我们用到的TabLayout是属于android.support.design.widget中的组件

以下为主xml文件,包含TabLayout和ViewPager两个组件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_height="wrap_content"
android:layout_width="match_parent"
app:tabIndicatorColor="@android:color/holo_red_dark" //游标的颜色
app:tabSelectedTextColor="@android:color/holo_red_light" //选中的标签的颜色
app:tabTextColor="@android:color/black"/> //普通状态下的标签颜色

<android.support.v4.view.ViewPager
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/vp_view"
/>
</LinearLayout>

以下是主界面的代码,主要通过TabLayout和ViewPager来实现滑动页卡的效果,比较简单
package com.hcc.customviewpager;

import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;

import java.util.ArrayList;

public class NewsHomePage extends AppCompatActivity {
ArrayList<View>mViewList;//Save each of the Page View
ArrayList<String>mTabList;//Save each of the Tabs'Title
ViewPager mViewPager;
TabLayout mTabLayout;
LayoutInflater mLayoutInflater;
View view_home;
View view_intro;
View view_info;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViews();
initList();

//Add ViewList

view_home = mLayoutInflater.inflate(R.layout.pager_home,null);
view_info = mLayoutInflater.inflate(R.layout.page_information,null);
view_intro = mLayoutInflater.inflate(R.layout.page_introduce,null);
mViewList.add(view_home);
mViewList.add(view_info);
mViewList.add(view_intro);

//Add TabList

mTabList.add("个人信息");
mTabList.add("网易新闻");
mTabList.add("娱乐资讯");

mTabLayout.setTabMode(TabLayout.MODE_FIXED);//设置标签的模式,默认系统模式

//set the click event of Tag and change current page into the seleceted one

mTabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
mViewPager.setCurrentItem(tab.getPosition());//点击哪个就跳转哪个界面
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});

//Add the tag elements
mTabLayout.addTab(mTabLayout.newTab().setText(mTabList.get(0)));
mTabLayout.addTab(mTabLayout.newTab().setText(mTabList.get(1)));
mTabLayout.addTab(mTabLayout.newTab().setText(mTabList.get(2)));

//Bind the adapter with the mViewPager as well as mTablayout

CustomPagerAdapter myAdapter = new CustomPagerAdapter(mViewList, mTabList);
mViewPager.setAdapter(myAdapter);
mTabLayout.setupWithViewPager(mViewPager);
mTabLayout.setTabsFromPagerAdapter(myAdapter);
}

private void initList(){
mTabList = new ArrayList<String>();
mViewList = new ArrayList<View>();
}
private void findViews() {
mLayoutInflater = LayoutInflater.from(this);
mTabLayout = (TabLayout)findViewById(R.id.tabs);
mViewPager = (ViewPager)findViewById(R.id.vp_view);
}
}
结果如下图:

 

最后说明一下

TabLayout.OnTabSelectedListener:监听Tab选中的事件 
TabLayout.TabLayoutOnPageChangeListener:配合Viewpager使用的PageChangeListener用来切换Tab,不过这里提供的TabLayout以及帮助我们实现了,所以可以不用该方法

以上便是关于TabLayout和ViewPager联合使用达到滑动页卡面的效果

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • TabLayout + ViewPager,tablayoutviewpager
  • TabLayout和ViewPager简单实现页卡的滑动,tablayoutviewpager

相关文章

  • 2017-05-26PigeonCall:一款Android VoIP网络电话App架构的介绍
  • 2017-05-26在Android应用程序使用YouTube API来嵌入视频,
  • 2017-05-26android中常见的设计模式有哪些?,android设计模式
  • 2017-07-22Android项目开发填坑记
  • 2017-05-26深入了解android中的消息机制Handler
  • 2017-05-26Android安全专项之Xposed劫持用户名密码实践
  • 2017-05-26【微学堂】第22期| Nginx的性能优化
  • 2017-05-26andriod Java中度转度分秒,andriodjava分秒
  • 2017-05-26Android,androidstudio
  • 2017-05-26手把手教你打造一个心电图效果View Android自定义View

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • cocos的Director、Scence、Layer(一)---摘自于官方文档,cocosscence
    • Linux内核系列—操作系统开发之保护模式的优势,linux内核
    • kvm性能优化
    • android权限大全
    • 一个大四毕业生想对自学Android的大学生说一些话,android大学生
    • 4.1.3 Activity登堂入室
    • 用户登录(Material Design + Data-Binding + MVP架构模式)实现,data-bindingmvp
    • Android文件下载之进度检测,android文件下载
    • PHP的readfile下载大文件时卡住
    • Android Studio 2.1 Preview有那些更新内容

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有