开源代码ViewPageIndicator的使用
1. 导入Android studio
使用SlidingMenu的方式导入Android studio不行,不知道为何,过会懂了再写上









2. 代码

activity_main.xml
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="slidingmenu.com.haha.MainActivity"> <com.viewpagerindicator.TabPageIndicator
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/TabIndicator_id"
android:background="@drawable/base_action_bar_bg_nine"
></com.viewpagerindicator.TabPageIndicator> <android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/viewPager_id"
></android.support.v4.view.ViewPager> </LinearLayout>
fragment_item.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="slidingmenu.com.haha.ItemFragment"> <!-- TODO: Update blank fragment layout -->
<TextView
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textSize="18sp"
android:gravity="center" /> </LinearLayout>
MainActivity.java
package slidingmenu.com.haha; import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast; import com.viewpagerindicator.TabPageIndicator; public class MainActivity extends AppCompatActivity {
private String TAG = "MainActivity";
private String[] TITTLe = new String[]{"哈哈","呵呵","嘿嘿","嘻嘻"}; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //1. 拿到viewpager
ViewPager viewPager = findViewById(R.id.viewPager_id);
//2. 创建一个适配器
myPagerAdapter mPagerAdapter = new myPagerAdapter(getSupportFragmentManager());
//3. 将适配器和Viewpager绑定
viewPager.setAdapter(mPagerAdapter);
//4. 拿到TabPageIndicator
TabPageIndicator tabPageIndicator = findViewById(R.id.TabIndicator_id);
//5. 将ViewPager和TabPageIndicator进行绑定
tabPageIndicator.setViewPager(viewPager);
//6. 设置页面改变时候的监听函数
tabPageIndicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
Log.d(TAG, "onPageScrolled");
} @Override
public void onPageSelected(int position) {
Log.d(TAG, "onPageSelected");
Toast.makeText(getApplicationContext(), TITTLe[position], Toast.LENGTH_SHORT).show();
} @Override
public void onPageScrollStateChanged(int state) {
Log.d(TAG, "onPageScrollStateChanged");
}
});
} //适配器
protected class myPagerAdapter extends FragmentPagerAdapter{ public myPagerAdapter(FragmentManager fm) {
//Log.d(TAG, "myPagerAdapter");
super(fm);
} @Override
public int getCount() {
Log.d(TAG, "getCount");
return TITTLe.length;
}
//创建一个新的界面(通过fragment)
@Override
public Fragment getItem(int position) {
Log.d(TAG, "getItem");
ItemFragment fragment = new ItemFragment();
Bundle args = new Bundle();
args.putString("arg", TITTLe[position]);
fragment.setArguments(args);
return fragment;
}
//显示抬头的tab
public CharSequence getPageTitle(int position) {
Log.d(TAG, "getPageTitle");
return TITTLe[position % TITTLe.length];
}
}
}
ItemFragment.java
package slidingmenu.com.haha; import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView; public class ItemFragment extends Fragment { public ItemFragment() {
// Required empty public constructor
} public static ItemFragment newInstance(String param1, String param2) {
ItemFragment fragment = new ItemFragment();
return fragment;
} @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
} @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View contextView = inflater.inflate(R.layout.fragment_item, container, false);
TextView mTextView = (TextView) contextView.findViewById(R.id.textview);
//获取Activity传递过来的参数
Bundle mBundle = getArguments();
String title = mBundle.getString("arg");
mTextView.setText(title); return contextView;
} }



资料:
导入:http://blog.csdn.net/CDWLX/article/details/52161075
使用:http://blog.csdn.net/xiaanming/article/details/10766053
开源代码ViewPageIndicator的使用的更多相关文章
- Android开源框架ViewPageIndicator和ViewPager实现Tab导航
前言: 关于使用ViewPageIndicator和ViewPager实现Tab导航,在开发社区里已经有一堆的博客对其进行了介绍,假设我还在这里写怎样去实现.那简直就是老生常谈,毫无新奇感,并且.我也 ...
- 一个可随意定位置的带色Toast——开源代码Crouton的简单使用
今天在公司要求的代码中,要求显示的提示能够更加具有多样化,而不是简单的Toast字样,第一想法肯定是自定义View呀,结果在浏览中发现还有这样的一个开源代码——Crouton. 几经折腾,发现这个东西 ...
- GitHub + VSTS 开源代码双向同步
GitHub已经是全球开源代码的大本营了,通过以下统计你可以看到仅仅javascript在github就有超过32万个活动的repo.很多开发人员都会把自己的一部分代码分享到github上进行开源,一 ...
- CWMP开源代码研究5——CWMP程序设计思想
声明:本文涉及的开源程序代码学习和研究,严禁用于商业目的. 如有任何问题,欢迎和我交流.(企鹅号:408797506) 本文介绍自己用过的ACS,其中包括开源版(提供下载包)和商业版(仅提供安装包下载 ...
- iOS流行的开源代码库
本文介绍一些流行的iOS的开源代码库 1.AFNetworking 更新频率高的轻量级的第三方网络库,基于NSURL和NSOperation,支持iOS和OSX.https://github.com/ ...
- CWMP开源代码研究2——easycwmp安装和学习
声明:本文是对开源程序代码学习和研究,严禁用于商业目的. 如有任何问题,欢迎和我交流.(企鹅号:408797506) 本文所有笔记和代码可以到csdn下载:http://download.csdn.n ...
- CWMP开源代码研究1——开篇之作
原创作品,转载请注明出处,严禁非法转载.如有错误,请留言! email:40879506@qq.com 声明:本系列涉及的开源程序代码学习和研究,严禁用于商业目的. 如有任何问题,欢迎和我交流.(企鹅 ...
- 开源代码Window下搭建rtmp流媒体服务器
合肥程序员群:49313181. 合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojit@qq.com 综合:有这样需求,将摄像头 ...
- AgileEAS.NET SOA 中间件平台 5.2 发布说明-包含Silverlight及报表系统的开源代码下载
一.AgileEAS.NET SOA 中间件简介 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速 ...
随机推荐
- C# WebService调用方法
public class WebServiceHelper { /// < summary> /// 动态调用web服务 /// < ...
- C#语言各个版本特性(一)
一.c#版本中添加的功能: C#2.0 泛型 部分类型 匿名方法 迭代器 可空类型 Getter / setter单独可访问性 方法组转换(代表) Co- and Contra-variance fo ...
- Asp.NetCore安全验证之JWT
本文只是介绍了下基于AspNetCore自带的System.IdentityModel.Tokens.Jwt.dll工具在项目中Token的应用. 我这里谈到的很浅显就两点: 一,超时时间 二,数据的 ...
- Hibernate继承映射(@Inheritance)
继承映射在 Annotation 中使用 @Inheritance 注解,并且需要使用 strategy 属性指定继承策略,继承策略有 SINGLE_TABLE.TABLE_PER_CLASS 和 J ...
- Gogland编译Syncthing!
说明:我仅仅以这个Syncthing工程为例,来说明如何正确使用Goland编译其他人写的工程,应该具有普遍意义,看懂这篇博客,你想用Gogland去编译其他人的工程,应该不是问题!! Syncthi ...
- html中设置data-*属性值 并在js中进行获取属性值
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- [转载] 解决gns3 for mac模拟器三层交换机无法成功创建vlan的问题
1.删除之前导入的ios: 2.选择GNS3--Edit--Preferences--IOS routers--New--导入ios-- 勾选This is an EtherSwitch router ...
- python接口自动化发送get请求 详解(一)
前言:接口自动化实现自动化脚本比较稳定,主要用到requests模块,后面我会把这个模块单独拉出来写一下. 一.环境安装 1.用pip安装requests模块 >>pip install ...
- 30 个免费的 Sketch 必备插件
简评:中秋三天小长假,要不要学点啥?比如简单的设计?比如用 Sketch 做个项目? Sketch 有许多值得称赞的地方,其丰富的插件就是亮点之一.Sketch 的社区有着大量免费高效的插件.今天这篇 ...
- C语言奇淫技巧,字符串的三种表示方法,不会用不是合格的程序员
1.在C语言中,是将字符串作为字符数组来处理的,字符串是逐个存放到数组元素中的 例如用一个一维的字符数组存放字符串"I am a boy.",如下代码: char c[12] = ...