ViewPager+PagerTabStrip实现页面的切换
页面切换效果图
首先创建布局:

代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/viewpager_1221"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v4.view.PagerTabStrip
android:id="@+id/tab"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.v4.view.PagerTabStrip>
</android.support.v4.view.ViewPager>
</LinearLayout>
然后创建子布局页面:多个页面,例第一个页面

其次创建子布局的framgent,加载子布局:以第一个页面的为例代码如下
package com.example.administrator.test_1216.framgent;
public class OneoFramgentTab1221 extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.onetab1221_item,null);
return view;
}
}
接下来创建adapger适配器,继承FragmentPagerAdapter,代码如下:声明页面集合,title集合,将其加入到页面显示中
package com.example.administrator.test_1216.adapter;
public class FramgentPagerTabAdapter1221 extends FragmentPagerAdapter {
//声明页面集合
List<Fragment> list;
//声明title集合
List<String> titles;
public FramgentPagerTabAdapter1221(FragmentManager fm, List<Fragment> list, List<String> titles) {
super(fm);
this.list = list;
this.titles = titles;
}
@Override
public Fragment getItem(int position) {
return list.get(position);
}
@Override
public int getCount() {
return list.size();
}
@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}
}
最后创建activity:继承framgentactivity;
首先声明控件,绑定id,声明集合,集合加入值,启动adapter传参;设置页面滑动监听,最后在设置下滑动时候文字的颜色等
package com.example.administrator.test_1216.adapter;
public class FramgentPagerTabActivity1221 extends FragmentActivity implements ViewPager.OnPageChangeListener {
//声明控件
ViewPager viewPager;
PagerTabStrip pts;
//声明集合
List<Fragment> list;
List<String> titles;
//适配器
FramgentPagerTabAdapter1221 adapter;
//背景颜色
private int bg;
//线的颜色
private int line;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e("tag","onCreate1");
setContentView(R.layout.pagerframgenttab1221);
//绑定id
viewPager= (ViewPager) findViewById(R.id.viewpager_1221);
pts= (PagerTabStrip) findViewById(R.id.tab);
//设置页面监听
viewPager.addOnPageChangeListener(this);
//初始化页面集合
list=new ArrayList<Fragment>();
list.add(new OneoFramgentTab1221());
list.add(new TwoFramgentTab1221());
list.add(new ThreeFramgentTab1221());
list.add(new FourFramgentTab1221());
//初始化标题集合
titles=new ArrayList<String>();
titles.add("第十八个春秋");
titles.add("大家庭");
titles.add("生活苦咖啡");
titles.add("最后一页了");
//初始化适配器
adapter=new FramgentPagerTabAdapter1221(getSupportFragmentManager(),list,titles);
viewPager.setAdapter(adapter);
//获取颜色
bg = getResources().getColor(R.color.bg);
line = getResources().getColor(R.color.line);
//取消tab的长横线
pts.setDrawFullUnderline(false);
//设置tab的背景颜色
pts.setBackgroundColor(bg);
//设置线条的颜色
pts.setTabIndicatorColor(line);
//设置内边距
pts.setPadding(10,10,10,20);
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
}
ViewPager+PagerTabStrip实现页面的切换的更多相关文章
- ViewPager+Fragment实现页面的切换
新知识,新摘要: 效果图:framgent导入包都是v4包下,谨慎导入错误! 首先设置viewPager布局: <?xml version="1.0" encoding=&q ...
- Android中使用ViewPager实现屏幕页面切换和页面切换效果
之前关于如何实现屏幕页面切换,写过一篇博文<Android中使用ViewFlipper实现屏幕切换>,相比ViewFlipper,ViewPager更适用复杂的视图切换,而且Viewpag ...
- ViewPager之Fragment页面切换
一.概述 ViewPager是android-support-v4中提供的类,它是一个容器类,常用于页面之间的切换. 继上篇文章<ViewPager之引导页>之后,本文主要介绍ViewPa ...
- ViewPager和View组合 实现页面的切换
//--------------主页面------------------------------- package com.bw.test; import java.util.ArrayList;i ...
- Android开发之利用ViewPager实现页面的切换(仿微信、QQ)
这里利用ViewPager实现页面的滑动,下面直接上代码: 1.首先写一个Activity,然后将要滑动的Fragment镶嵌到写好的Activity中. Activity的布局文件:activity ...
- Android典型界面设计(7) ——DrawerLayout+Fragement+ViewPager+PagerTabStrip实现双导航
一.问题描述 在Android典型界面设计(3)的我们实现了双导航效果,即外层底部导航和内部区域的头部导航,如网易新闻等很多应用采用了这种导航,但Google提供DrawerLayout可实现抽屉式导 ...
- 【转】ViewPager实现一个页面多个Item的显示
转自:http://billyyuan.iteye.com/blog/1941538 ViewPager实现一个页面多个Item的显示 博客分类: android 代码在: https://cod ...
- selenium多个标签页的切换(弹出新页面的切换)
1_windows = driver.current_window_handle #定位当前页面句柄 all_handles = driver.window_handles #获取全部页面句柄 for ...
- js判断当前浏览器页面是否切换
公司做mifi设备,ui界面很多信息需要1S钟不断异步请求更新信息,如果同时打开多个浏览器或者多个当前界面,设备1S钟会收到很多个请求,由于设备本身内存限制,会导致响应速度过慢,且会造成设备重启等. ...
随机推荐
- 01-C#入门(函数一)
只有在动手写代码的时候,才能真正理解到代码的逻辑思想,所以,开始写代码吧. 函数的意义:降低相同功能的代码重复编写,提高重复代码的维护效率. 函数 一个文件由命令空间(namespace).类(cla ...
- Eclipse点击工程结构里任意文件或文件夹变拖动(或复制)的bug
本文为原创文章,欢迎转载,但请注明出处http://www.cnblogs.com/yexiubiao/p/5204601.html,未在文章页面明显位置给出原文连接的,将保留追究法律责任的权利. 在 ...
- 黑马程序员_ C语言基础之指针(三)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 概览 指针是C语言的精髓,但是很多初学者往往对于指针的概念并不深刻,以至于学完之后随着时间的推移 ...
- zz剖析为什么在多核多线程程序中要慎用volatile关键字?
[摘要]编译器保证volatile自己的读写有序,但由于optimization和多线程可以和非volatile读写interleave,也就是不原子,也就是没有用.C++11 supposed会支持 ...
- ZAM 3D 制作简单的3D字幕 流程(一)
本文原地址-> http://www.cnblogs.com/yk250/p/5663048.html 效果参考图:请查阅 http://www.cnblogs.com/yk250/p/5662 ...
- Javascript中判断变量是 array还是object(是数组还是对象)
段文字是从github上截取由本人翻译过来的. 原文地址:https://github.com/nathansmith/javascript-quiz/blob/master/ANSWERS.md 怎 ...
- 杭电acm 1001
#include<cstdio> int main() { int n; while(scanf("%d",&n)!=EOF) { ==) printf(*(n ...
- java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space 原因:内存溢出,内存一直申请一直占用,无法回收 解决方法:定时重启下服务,
- Bay Trail平板安装Ubuntu ThinkPad 8(20BNA00RCD)
首先说下没搞定的事项: 1,grub不能启动w10 2,ubuntu不能检测到无线网卡硬件 3,ubuntu更新软件和语言支持时,unpacking文件时经常都会发生卡死(怀疑是emmc驱动的问题) ...
- js拖动层原形版
脚本文件: function JzDrag(moveDivId, moveDivHandle) { // var me = this; this.M = false; //是否在移动对象 this.D ...