TabPageIndicator的简单使用

42 篇文章 1 订阅
28 篇文章 0 订阅

配置依赖



 compile 'com.viewpagerindicator:library:2.4.1' 
 maven { url " http://dl.bintray.com/populov/maven" } 

开始使用
Layout布局文件:
   
   
<?xml version="1.0" encoding="utf-8"?>
<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=".MainActivity">
 
<com.viewpagerindicator.TabPageIndicator
android:id="@+id/tbi"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
 
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
MainActivity.java
   
   
package com.zhangwei.vpidemo;
 
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBarActivity;
 
import com.viewpagerindicator.TabPageIndicator;
import com.zhangwei.vpidemo.adapter.VpiPageAdapter;
 
import java.util.ArrayList;
 
 
/**
* 能new 接口的实习类不要去new接口
*/
public class MainActivity extends ActionBarActivity {
 
private TabPageIndicator tbi;
private ViewPager vp;
private VpiPageAdapter adapter;
private ArrayList<Fragment> fragments = new ArrayList<>();
 
private String[] titles = {"测试", "测试", "测试", "测试", "测试", "测试", "测试", "测试", "测试", "测试"};
 
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
 
private void init() {
this.vp = (ViewPager) findViewById(R.id.vp);
this.tbi = (TabPageIndicator) findViewById(R.id.tbi);
fragments.add(new TestFragment());
fragments.add(new TestFragment());
fragments.add(new TestFragment());
fragments.add(new TestFragment());
fragments.add(new TestFragment());
fragments.add(new TestFragment());
fragments.add(new TestFragment());
fragments.add(new TestFragment());
fragments.add(new TestFragment());
fragments.add(new TestFragment());
adapter = new VpiPageAdapter(getSupportFragmentManager(), fragments, titles);
vp.setAdapter(adapter);
tbi.setViewPager(vp);
 
}
}
TextFragment.java
   
   
package com.zhangwei.vpidemo;
 
 
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
 
 
 
public class TestFragment extends Fragment {
 
 
public TestFragment() {
// Required empty public constructor
}
 
 
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_test, container, false);
}
 
 
}
Fragment的布局稍微简单就不拿出来了!
适配器的代码 VpiPageAdapter.java
  
  
package com.zhangwei.vpidemo.adapter;
 
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
 
import com.viewpagerindicator.TabPageIndicator;
 
import java.util.List;
 
public class VpiPageAdapter extends FragmentPagerAdapter {
 
private List<Fragment> fragments;
String[] titles;
 
public VpiPageAdapter(FragmentManager fm, List<Fragment> fragments, String[] titles) {
super(fm);
this.fragments = fragments;
this.titles = titles;
}
 
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
 
@Override
public int getCount() {
return fragments == null ? 0 : fragments.size();
}
 
/**
*
* @param position
* @return
*/
@Override
public CharSequence getPageTitle(int position) {
return titles != null ? titles[position] : super.getPageTitle(position);
}
}
在res下面新建一个color.xml 新建一个vpi_tabindicator_text_selector.xml
   
   
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@android:color/holo_red_dark" android:state_selected="true" />
<item android:color="@android:color/black" />
</selector>
最后修改样式
   
   
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="vpiTabPageIndicatorStyle">@style/CustomVpiTabPageIndicatorStyle</item>
</style>
 
<style name="CustomVpiTabPageIndicatorStyle" parent="Widget.TabPageIndicator">
<item name="android:background">@drawable/vpi__tab_indicator</item>
<item name="android:textAppearance">@style/TabPageIndicatorTextAppearance</item>
<item name="android:textSize">14sp</item>
</style>
 
<style name="TabPageIndicatorTextAppearance" parent="TextAppearance.TabPageIndicator">
<item name="android:textColor">@color/vpi_tabindicator_text_selector</item>
</style>
</resources>
效果图


由于官方的原因 之前那个依赖库用不了 所以在这再给一个  只需要改依赖库的地址就好  
compile 'fr.avianey.com.viewpagerindicator:library:2.4.1@aar'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值