Android滑动页碎片框架模板说明文档
- 格式:doc
- 大小:304.00 KB
- 文档页数:17
Android Framework核心知识点汇总手册是Android开发人员必备的参考资料,它详细介绍了Android操作系统的工作原理和核心组件。
手册首先概述了Android的系统架构,包括应用程序层、应用程序框架层、系统服务和系统库等。
核心知识点包括活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)和内容提供者(ContentProvider)等组件的使用方法和最佳实践。
此外,手册还深入介绍了Android的消息传递机制、事件处理机制、资源管理系统以及安全性和权限管理等方面的知识。
通过学习这本手册,Android开发人员可以深入了解Android框架的工作原理,掌握各种组件的使用方法和最佳实践,提高开发效率和应用性能。
同时,手册还提供了丰富的示例和练习题,帮助读者更好地理解和应用所学知识。
总之,Android Framework核心知识点汇总手册是Android开发人员必备的参考资料,它有助于提高开发人员的技能水平和应用性能,为开发出高效、稳定的Android应用程序提供了有力支持。
XXX详细设计说明书
安卓拨号器详细设计说明书
专业:通信工程
姓名:余涛
学号:201308030311
指导老师:柳杨
变更记录
签字确认
目录
1引言 (4)
1.1 编写目的 (4)
1.2 背景 (4)
1.3 基线 (4)
1.4 范围 (4)
1.5 定义 (4)
1.6 参考资料 (4)
1.7 术语与缩写解释 (4)
2模块命名规则 (6)
3模块汇总 (6)
3.1 模块汇总表 (6)
3.2 模块关系图 (6)
4子系统模块设计 (6)
4.1 模块1 (6)
4.2 模块2 (7)
1引言
1.1 编写目的
随着我们交际圈的扩大,我们的联系人越来越多,电话本杂乱无章,打电话的时候总是不方便。
因此我想开发一款操作方便、使用快捷的拨号器,给客户一种全新的体验。
1.2 背景
a)软件系统的名称:xx
b)项目负责人: xx
c)程序员:xx
1.3 基线
1.4 范围
系统包括的范围:安卓2.2以上的所有版本均可使用。
1.5 定义
系统包括的范围:安卓2.2以上的所有版本均可使用。
1.6 参考资料
参考资料如下:
a)xx
b)xx
c)xx
1.7 术语与缩写解释
2模块命名规则
应用程序名:xx 工程文件名:xx 报名:xx 类名:xxxxx 函数:xxxx
3模块汇总
3.1 模块汇总表
3.2 模块关系图
4子系统模块设计
4.1 模块1
4.2 模块2
5程序运行流程图6扩展模块设计。
android三种实现水平向滑动方式(ViewPager、ViewFilpper、ViewF…ViewPagerViewPager类提供了多界面切换的新效果。
新效果有如下特征:[1] 当前显示一组界面中的其中一个界面。
[2] 当用户通过左右滑动界面时,当前的屏幕显示当前界面和下一个界面的一部分。
[3] 滑动结束后,界面自动跳转到当前选择的界面中ViewPager来源于google 的补充组件android-support-v4.jar,位置在androidSDK文件夹android-sdks\extras\android\support\ 下将android-support-v4.jar 引用到项目中注:该包需要在Android SDK Manager中额外下载Extras下的Android Support package,或直接下载该jar包到项目中引用引入后可直接当作控件在项目中使用。
配置文件页面文件<android.support.v4.view.ViewPagerandroid:id="@+id/viewPager1"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_centerVertical="true" />配置适配器的页面变化事件viewPager1.setOnPageChangeListener(new OnPageChangeListener() {//页面选择@Overridepublic void onPageSelected(int position) {topText.setText(String.valueOf(position+1)+"/"+String.valueOf(lists.length));}@Overridepublic void onPageScrollStateChanged(int state) { }@Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { }});ViewPager使用的适配器基于PagerAdapter基类主要实现一下四个方法//获取当前窗体界面数public int getCount()//初始化position位置的界面public Object instantiateItem(View collection, int position) //销毁position位置的界面public void destroyItem(View collection, int position, Object view)// 判断是否由对象生成界面public boolean isViewFromObject(View arg0, Object arg1)ViewPager控件的使用中,可以将View装如ArrayList中作为数据载体,每一项(即每一页)为一个View显示,可以适应大量页面或者变化的页面长度的显示ViewFilpperViewfilpper控件主要用于在同一个Activity内屏幕见的切换,最长见的情况就是在一个FrameLayout内有多个页面,比如一个系统设置页面;一个个性化设置页面。
android viewpage onpagescrolled参数
Android ViewPage onPageScrolled参数是用于监听页面滑动事件的回调方法。
该方法会在页面滑动过程中被调用,包含三个参数:position、positionOffset和positionOffsetPixels。
position参数表示当前页面的位置,从0开始计数。
对于三个页面的ViewPager,当用户从页面1滑动到页面2时,position的值为1;当用户从页面2滑动到页面3时,position的值为2。
positionOffset参数表示当前页面的偏移量,范围是从0到1。
当用户从页面1
滑动到页面2时,positionOffset的值会从0逐渐增加到1;当用户从页面2滑动到
页面3时,positionOffset的值会从0逐渐增加到1。
positionOffsetPixels参数表示当前页面的像素偏移量。
它表示了用户从当前页
面滑动到下一个页面的总距离,以像素为单位。
通过使用这三个参数,我们可以在页面滑动过程中执行一些动画效果或逻辑操作。
例如,我们可以根据positionOffset的值来改变页面中某个元素的透明度、缩
放比例或位置等,实现一些炫酷的过渡效果。
总之,onPageScrolled方法是非常有用的。
通过监听和利用这些参数,我们可
以实现更加灵活和自定义的页面切换效果,提升用户体验。
xposed框架模版
Xposed框架,改变你的Android体验。
Xposed框架是一个强大的工具,它可以改变你的Android设备的体验。
它允许
用户定制他们的设备,从而实现他们所期望的功能和外观。
无论是改变系统设置、增强应用程序功能,还是修改用户界面,Xposed框架都可以实现。
Xposed框架的核心是模块化的设计。
用户可以安装各种不同的模块,这些模
块可以修改系统的行为和外观。
例如,用户可以安装一个模块来改变通知栏的样式,或者安装一个模块来增强系统的权限管理。
这种模块化的设计使得用户可以根据自己的需求来定制自己的设备。
另一个Xposed框架的优点是它的灵活性。
用户不需要刷入定制的ROM,也不
需要root权限。
这意味着用户可以在不损害设备保修的情况下,轻松地定制自己
的设备。
而且,Xposed框架的模块可以在不同的设备上通用,这意味着用户可以
在多个设备上共享他们的定制。
除此之外,Xposed框架还有一个活跃的社区。
用户可以在各种论坛和社交媒
体上找到大量的模块和定制建议。
这些社区成员通常会分享他们的定制方案,帮助其他用户解决问题,甚至开发新的模块。
这种社区精神使得Xposed框架成为一个
强大的定制工具。
总的来说,Xposed框架是一个强大的工具,它可以改变你的Android设备的体验。
它的模块化设计、灵活性和活跃的社区使得用户可以轻松地定制自己的设备。
如果你想要改变你的Android设备的外观和功能,不妨试试Xposed框架吧!。
Android⽤viewPager2实现UI界⾯翻页滚动的效果⽬录1.先在build.gradle(Module)下添加引⽤viewPager2的库2.在MainActivity下新建⼀个viewPager23.创建个ViewPagerAdapter1.先在build.gradle(Module)下添加引⽤viewPager2的库implementation 'androidx.viewpager2:viewpager2:1.0.0'2.在MainActivity下新建⼀个viewPager2ViewPager2 viewPager = findViewById(R.id.viewPager);ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter();viewPager.setAdapter(viewPagerAdapter);xml也要导⼊ViewPager2<androidx.viewpager2.widget.ViewPager2android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/viewPager"android:background="@color/teal_200" ></androidx.viewpager2.widget.ViewPager2>3.创建个ViewPagerAdapterpackage com.zhizhu.test03;import youtInflater;import android.view.View;import android.view.ViewGroup;import android.widget.RelativeLayout;import android.widget.TextView;import androidx.annotation.NonNull;import androidx.recyclerview.widget.RecyclerView;import java.util.ArrayList;import java.util.List;public class ViewPagerAdapter extends RecyclerView.Adapter<ViewPagerAdapter.ViewPagerViewHolder> {private List<String> titles = new ArrayList<>();public ViewPagerAdapter(){titles.add("111");titles.add("222");titles.add("99999");titles.add("333");titles.add("99888");}@NonNull@Overridepublic ViewPagerViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {return new ViewPagerViewHolder(LayoutInflater.from(parent.getContext()).inflate(yout.item_pager, parent, false));}@Overridepublic void onBindViewHolder(@NonNull ViewPagerViewHolder holder, int position) {holder.mTV.setText(titles.get(position));}@Overridepublic int getItemCount() {return 5;}class ViewPagerViewHolder extends RecyclerView.ViewHolder{TextView mTV;RelativeLayout mContainer;public ViewPagerViewHolder(@NonNull View itemView) {super(itemView);mContainer = itemView.findViewById(R.id.container);mTV = itemView.findViewById(Title);}}}还要创建个item_pager.xml⽂件<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/container"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/tvTitle"android:layout_centerInParent="true"android:textColor="@color/black"android:textSize="30dp"android:text="88888"></TextView></RelativeLayout>最终效果图:以上就是Android⽤viewPager2实现UI界⾯翻页滚动的效果的详细内容,更多关于Android UI界⾯翻页滚动的资料请关注其它相关⽂章!。
autosize fragment变形
“autosize fragment变形”可能是指在Android屏幕适配方案中,使用 AutoSize 框架时,Fragment 出现变形的情况。
这是因为在适配过程中,需要保证页面视图(View)不变形,所以只能以宽度为基准,自适应地设置高度,这样会导致页面整体高度超出屏幕高度,从而需要设置页面滚动以避免内容显示不全。
如果以高度为基准进行适配,很大情况下视图会变形,比如图片会被拉伸变形。
因此,在使用 AutoSize 框架进行屏幕适配时,需要权衡视图不变形和适配效果,选择合适的适配策略。
如果需要了解更多关于“autosize fragment 变形”的信息,建议提供更具体的问题描述,以便我更好地回答。
android slidemenu 用法
在Android中,使用SlideMenu(滑动菜单)可以实现一个侧边栏效果,用户可以通过手势滑动或点击按钮来打开或关闭侧边栏。
下面是实现的步骤:
1. 选择继承ViewGroup来实现。
首先考虑子view的布局,即如何重写onLayout方法。
2. 可以像FrameLayout一样,将菜单的布局放在下面,内容的布局放在上面,通过上层内容视图的滑动来显示下面的视图。
3. 可以像LinearLayout一样,从左向右依次布局。
起始时,先向左滑动一段距离(菜单的宽度)以隐藏掉菜单。
4. 直接将菜单的布局放置在屏幕可见区域外。
如菜单布局的宽度为200,那么就可以使用`final int width= menuView.getMeasuredWidth(); yout(-width,0, 0, menuView.getMeasuredHeight());`。
你也可以试试DrawerLayout或SlidingMenu,这些方法比上述方法更好用。
如需了解更多关于Android SlideMenu的用法,你可以查阅其他相关的文档或源代码。
滑动模板工程技术标准理解与应用指南下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!滑动模板工程技术标准理解与应用指南引言随着现代工程建设的不断发展,滑动模板工程在建筑领域中扮演着重要的角色。
Android滑动页+碎片框架模板第1阶段: 搭建基本视图框架导入jar包android-support-v4.jar添加图片title_option.png添加colors.xml<?xml version="1.0" encoding="utf-8"?><resources><color name="top_bg">#607d8b</color><color name="common_top_bar_normal">#607d8b</color><color name="common_top_bar_blue">#22292c</color><color name="btn_login_normal">#007086</color><color name="btn_login_pressed">#303744</color><color name="btn_logout_normal">#d33f3f</color><color name="btn_logout_pressed">#DA5A4D</color><color name="btn_register_normal">#2dafa3</color><color name="btn_register_pressed">#4ebcd3</color><color name="common_bottom_bar_normal_bg">#2d2f31</color><color name="common_bottom_bar_selected_bg">#161718</color><color name="common_botton_bar_blue">#2ea7e0</color><color name="common_bg">#fcfcfc</color><color name="btn_pressed_green_solid">#B6DA53</color><color name="divider_list">#cccccc</color><color name="top_bar_normal_bg">#4ebcd3</color><color name="bottom_bar_normal_bg">#2D2F31</color><color name="bottom_text_color_normal">#ffffff</color><color name="btn_white_normal">#f7f8f8</color><color name="btn_white_pressed">#b5b5b6</color><color name="btn_green_noraml">#68C270</color><color name="btn_green_pressed">#6FCD78</color><color name="btn_gray_normal">#c0c0c0</color><color name="btn_gray_pressed_status">#b5b5b6</color><color name="btn_gray_pressed">#666667</color><color name="btn_blue_normal">#1e90ff</color><color name="btn_blue_pressed">#0066FF</color><color name="orange">#FFA500</color><color name="gray_pressed">#b5b5b6</color><color name="gray_normal">#666667</color><color name="grid_state_pressed">#1Affffff</color><color name="grid_state_focused">#80000000</color><color name="voip_interface_text_color">#bababa</color><color name="black_deep">#FF000000</color></resources>activity_main.xml<LinearLayout xmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="70dp"android:background="@color/btn_blue_normal"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="50dp"android:padding="10dp"android:layout_alignParentBottom="true"><TextViewandroid:id="@+id/tv_title"android:textSize="20sp"android:text="程序员▪干货"android:layout_centerInParent="true"android:textColor="#fff"android:layout_width="wrap_content"android:layout_height="wrap_content" /><ImageViewandroid:id="@+id/iv_add"android:layout_width="24dp"android:layout_height="24dp"android:src="@drawable/title_option"android:layout_alignParentRight="true"android:layout_centerVertical="true"/></RelativeLayout></RelativeLayout><!-- 标签页--><LinearLayoutandroid:id="@+id/id_ly_bottombar"android:layout_width="fill_parent"android:layout_height="40dp"android:orientation="horizontal"android:background="#fff"><RelativeLayoutandroid:id="@+id/btn1"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_weight="1"android:background="#fff"><TextViewandroid:id="@+id/txt1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="妹纸"android:layout_centerInParent="true"android:textColor="#607d8b"android:textSize="18sp"/><RelativeLayoutandroid:id="@+id/line1"android:layout_height="2dp"/></RelativeLayout><RelativeLayoutandroid:id="@+id/btn2"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_weight="1"android:background="#fff"><TextViewandroid:id="@+id/txt2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="干货"android:layout_centerInParent="true"android:textColor="#607d8b"android:textSize="18sp"/><RelativeLayoutandroid:id="@+id/line2"android:layout_alignParentBottom="true"android:background="@color/btn_blue_normal"android:layout_width="match_parent"android:layout_height="2dp"/></RelativeLayout><RelativeLayoutandroid:id="@+id/btn3"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_weight="1"android:background="#fff"><TextViewandroid:id="@+id/txt3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="收藏"android:layout_centerInParent="true"android:textColor="#607d8b"android:textSize="18sp"/><RelativeLayoutandroid:id="@+id/line3"android:layout_height="2dp"/></RelativeLayout><RelativeLayoutandroid:id="@+id/btn4"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_weight="1"android:background="#fff"><TextViewandroid:id="@+id/txt4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="设置"android:layout_centerInParent="true"android:textColor="#607d8b"android:textSize="18sp"/><RelativeLayoutandroid:id="@+id/line4"android:layout_alignParentBottom="true"android:background="@color/btn_blue_normal"android:layout_width="match_parent"android:layout_height="2dp"/></RelativeLayout></LinearLayout><!-- 切换Fragment的地方--><LinearLayoutandroid:id="@+id/id_content"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_below="@id/id_ly_bottombar"android:orientation="horizontal" ><android.support.v4.view.ViewPagerandroid:id="@+id/vp"android:layout_width="match_parent"android:layout_height="match_parent"android:flipInterval="3000"android:persistentDrawingCache="animation" /></LinearLayout></LinearLayout>MainActivitypackage com.spl.viewpagerfragmentset;import android.graphics.Color;import android.os.Bundle;import android.support.v4.app.FragmentActivity;import android.support.v4.view.ViewPager;import android.view.View;import android.view.Window;import android.view.WindowManager;import android.widget.RelativeLayout;import android.widget.TextView;/*** 主界面:ViewPager的容器*/public class MainActivity extends FragmentActivityimplements View.OnClickListener, ViewPager.OnPageChangeListener {// 按钮数组private RelativeLayout[] arrBtn = new RelativeLayout[4];// 标签文字数组private TextView[] arrTxt = new TextView[4];// 标签下划线(Indicator)private RelativeLayout[] arrLine = new RelativeLayout[4];// 滑动页容器private ViewPager viewPager;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 去标题requestWindowFeature(Window.FEATURE_NO_TITLE);//透明状态栏(沉浸式)getWindow().addFlags(youtParams.FLAG_TRANSLUCENT_STATUS);//透明导航栏(沉浸式)getWindow().addFlags(youtParams.FLAG_TRANSLUCENT_NA VIGATION);setContentView(yout.activity_main);initView();initData();initListener();viewPager.setCurrentItem(0);setColor(0);}private void initView() {// 初始化下划线(逐帧动画)String packageName = getApplicationContext().getPackageName();//获取当前包名for (int i = 0; i < 4; i++) {//从图片名称反射资源ID R.id.line1int id = this.getResources().getIdentifier("line" + (i + 1), "id", packageName);arrLine[i] = (RelativeLayout) findViewById(id);int id2 = this.getResources().getIdentifier("btn" + (i + 1), "id", packageName);arrBtn[i] =(RelativeLayout) findViewById(id2);int id3 = this.getResources().getIdentifier("txt" + (i + 1), "id", packageName);arrTxt[i] = (TextView) findViewById(id3);}// 获取ViewPager对象viewPager = (ViewPager) findViewById(R.id.vp);}private void initData() {}private void initListener() {// 添加按钮的监听for (int i = 0; i < arrBtn.length; i++) {arrBtn[i].setOnClickListener(this);}// 添加滑动页的监听viewPager.setOnPageChangeListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn1:viewPager.setCurrentItem(0);// 第一页break;case R.id.btn2:viewPager.setCurrentItem(1);// 第二页break;case R.id.btn3:viewPager.setCurrentItem(2);// 第二页break;case R.id.btn4:viewPager.setCurrentItem(3);// 第二页break;default:break;}}/*** 1.将所有的背景统一颜色* 2.将当前选中的背景设置特殊颜色* @param index*/public void setColor(int index){// "所有人"都回复最初的状态for (int i = 0; i<arrBtn.length; i++){arrLine[i].setBackgroundColor(Color.WHITE);arrTxt[i].setTextColor(getResources().getColor(mon_top_bar_normal));}arrLine[index].setBackgroundColor(getResources().getColor(R.color.btn_blue_normal));// 特殊arrTxt[index].setTextColor(getResources().getColor(R.color.btn_blue_normal));}@Overridepublic void onPageScrolled(int i, float v, int i2) {// 滑动过程中...(写动画)}@Overridepublic void onPageSelected(int i) {// 核心事件setColor(i);}@Overridepublic void onPageScrollStateChanged(int i) {// 滑动的状态改变}}本阶段完成效果图第2阶段:添加碎片Cons.java/*** 常量类on 2016/7/27.*/public class Cons {public static final String[] Tab_Name = {"妹子","干货","收藏","设置"};public static final String Key_Fragment = "Key_Fragment";}fragment_base.xml(碎片布局)<RelativeLayout xmlns:android="/apk/res/android"xmlns:tools="/tools" android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><TextViewandroid:id="@+id/title"android:text="设置"android:textSize="28sp"android:layout_centerInParent="true"android:layout_width="wrap_content"android:layout_height="wrap_content" /></RelativeLayout>BaseFragment(碎片基类)import android.support.v4.app.Fragment;import youtInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import com.spl.viewpagerfragmentset.Cons;import com.spl.viewpagerfragmentset.R;/*** Created by on 2016/7/27.*/public class BaseFragment extends Fragment {@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {// 反射视图View view = inflater.inflate(yout.fragment_base, container, false);// 获取参数值Bundle b = getArguments();String key = b.getString(Cons.Key_Fragment);TextView title = (TextView) view.findViewById(R.id.title);title.setText(key);return view;}}MyFragmentAdapaterpackage com.spl.viewpagerfragmentset.adapter;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import com.spl.viewpagerfragmentset.fragment.BaseFragment;import java.util.List;/*** 碎片适配器* Created on 2016/7/7.*/public class MyFragmentAdapater extends FragmentPagerAdapter {public void setFragments(List<BaseFragment> fragments) { this.fragments = fragments;}// 碎片集合private List<BaseFragment> fragments;/*** 构造器* @param fm 碎片管理者对象*/public MyFragmentAdapater(FragmentManager fm) {super(fm);}@Overridepublic Fragment getItem(int i) {return fragments.get(i);// 返回当前碎片元素}@Overridepublic int getCount() {return fragments.size();// 返回集合大小}}Managerpackage com.spl.viewpagerfragmentset;import android.app.Activity;import android.os.Bundle;import android.support.v4.app.FragmentActivity;import android.support.v4.view.ViewPager;import com.spl.viewpagerfragmentset.adapter.MyFragmentAdapater; import com.spl.viewpagerfragmentset.fragment.BaseFragment;import java.util.ArrayList;import java.util.List;/*** 管理对碎片的生成,传参和加载* Created by on 2016/7/27.*/public class Manager {Activity context;public Manager(Activity context){this.context = context;}// 碎片集合private List<BaseFragment> fragments;// 碎片适配器private MyFragmentAdapater adapter;public void initData(ViewPager viewPager) {// 准备碎片fragments = new ArrayList<BaseFragment>();fragments.add(new BaseFragment());fragments.add(new BaseFragment());fragments.add(new BaseFragment());fragments.add(new BaseFragment());for (int i = 0; i< fragments.size(); i++){Bundle b = new Bundle();b.putString(Cons.Key_Fragment,Cons.Tab_Name[i]);fragments.get(i).setArguments(b);}// 实例化适配器adapter = new MyFragmentAdapater(((FragmentActivity)context).getSupportFragmentManager());adapter.setFragments(fragments);// 添加数据viewPager.setAdapter(adapter);// 关联适配器}}MainActivity中修改// 管理者Manager manager;manager = new Manager(this);initView();initData();initListener();private void initData() {manager.initData(viewPager);}本阶段完成效果图第3阶段自定义颜色MainActivity中修改package com.spl.viewpagerfragmentset;import android.graphics.Color;import android.os.Bundle;import android.support.v4.app.FragmentActivity;import android.support.v4.view.ViewPager;import android.view.View;import android.view.Window;import android.view.WindowManager;import android.widget.RelativeLayout;import android.widget.TextView;/*** 主界面:ViewPager的容器*/public class MainActivity extends FragmentActivityimplements View.OnClickListener, ViewPager.OnPageChangeListener {// 按钮数组private RelativeLayout[] arrBtn = new RelativeLayout[4];// 标签文字数组private TextView[] arrTxt = new TextView[4];// 标签下划线(Indicator)private RelativeLayout[] arrLine = new RelativeLayout[4];// 滑动页容器private ViewPager viewPager;// 顶部栏(包含沉浸到状态栏的部分)RelativeLayout topbar;// 选中的标签颜色int color_selected = R.color.btn_blue_normal;// 未选中的标签颜色int color_unselected = mon_top_bar_normal;// 顶部栏颜色int color_topbar = R.color.btn_blue_normal;// 管理者Manager manager;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 去标题requestWindowFeature(Window.FEATURE_NO_TITLE);//透明状态栏(沉浸式)getWindow().addFlags(youtParams.FLAG_TRANSLUCENT_STATUS);//透明导航栏(沉浸式)getWindow().addFlags(youtParams.FLAG_TRANSLUCENT_NA VIGATION);setContentView(yout.activity_main);manager = new Manager(this);initStyle();initView();initData();initListener();viewPager.setCurrentItem(0);setColor(0);}// 改变颜色private void initStyle() {color_topbar = R.color.orange;color_selected = R.color.orange;}private void initView() {topbar = (RelativeLayout) findViewById(R.id.topbar);topbar.setBackgroundColor(getResources().getColor(color_topbar));}/*** 1.将所有的背景统一颜色* 2.将当前选中的背景设置特殊颜色* @param index*/public void setColor(int index){// "所有人"都回复最初的状态for (int i = 0; i<arrBtn.length; i++){arrLine[i].setBackgroundColor(Color.WHITE);arrTxt[i].setTextColor(getResources().getColor(color_unselected));}arrLine[index].setBackgroundColor(getResources().getColor(color_selected));// 特殊arrTxt[index].setTextColor(getResources().getColor(color_selected));}}本阶段完成效果图。