PagerSlidingTabStrip

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PagerSlidingTabStrip相关的知识,希望对你有一定的参考价值。

PagerSlidingTabStrip

介绍:用于viewPager和上面的标签Tab 关联,功能丰富

     1,studio网络库依赖包

      2,把Fragment 或者View 提供title文字,放进ViewPager的Adapter的四个方法中

      3,viewPager.setAdapter( new MyAdapter())

      4, Tab.setViewPager();

布局文件中,Tab和ViewPager是上下关系

<com.astuetz.PagerSlidingTabStrip  />

<ViewPager />

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical">

    <com.astuetz.PagerSlidingTabStrip
        android:id="@+id/tablayout"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        
        app:pstsIndicatorColor="#0f0"
        app:pstsIndicatorHeight="2dp"
        app:pstsIndicatorMarginLeftRight="10dp"
        //标签下划线的颜色和高度
        app:pstsUnderlineColor="#f00"
        app:pstsUnderlineHeight="1dp"

        app:pstsShouldExpand="true"

        app:pstsDividerColor="#00f"
        app:pstsDividerWidth="1dp"
        app:pstsDividerPadding="5dp"

        app:pstsTabTextStyle="bold|italic"
        app:pstsTabTextColor="@color/tab_selector"
        app:pstsTabBackground="@drawable/tab_bg"      标签被选中时候的背景色
        app:pstsTabTextSize="30sp" />

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

在Fragment 中

package cn.itcast.demo;

import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.astuetz.PagerSlidingTabStrip;

import junit.framework.Test;

import java.util.ArrayList;
import java.util.List;


public class NewsFragment extends Fragment {

    @butterknife.InjectView(R.id.tablayout)
    PagerSlidingTabStrip tablayout;
    @butterknife.InjectView(R.id.viewpager)
    ViewPager viewpager;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_news, null);

        butterknife.ButterKnife.inject(this, view);

        List<Fragment> fragmentlist = new ArrayList<>();
        fragmentlist.add(TestFragment.newInstance("这是 资讯 界面"));
        fragmentlist.add(TestFragment.newInstance("这是 热点 界面"));
        fragmentlist.add(TestFragment.newInstance("这是 博客 界面"));
        fragmentlist.add(TestFragment.newInstance("这是 推荐 界面"));

        viewpager.setAdapter(new MyViewPagerAdapter(getFragmentManager(),fragmentlist));

        // 关联标题栏和Viewpager
        tablayout.setViewPager(viewpager);
//        tablayout.setTextColorStateListResource(R.color.tab_selector);
设置标签文字被选中的颜色
System.out.println("开启任务,"+Thread.currentThread()); asyncTask.execute("你好","好不好","还好"); return view; } @Override public void onDestroyView() { super.onDestroyView(); butterknife.ButterKnife.reset(this); } }
//设置ViewPager的 Adapter
public
class MyViewPagerAdapter extends FragmentPagerAdapter { private List<Fragment> fragmentList; public MyViewPagerAdapter(FragmentManager fm, List<Fragment> fragmentList) { super(fm); this.fragmentList = fragmentList; } @Override public Fragment getItem(int position) { return fragmentList.get(position); } @Override public int getCount() { return fragmentList.size(); } @Override public CharSequence getPageTitle(int position) { return "界面 "+position; }

 

以上是关于PagerSlidingTabStrip的主要内容,如果未能解决你的问题,请参考以下文章

PagerSlidingTabStrip实现网易新闻导航栏效果

如何知道 Fragment 何时变得不可见

ActionBar + ViewPager(PagerSlidingTabStrip)

使用PagerSlidingTabStrip实现顶部导航栏

pagerslidingtabstrip 横向滑动

PagerSlidingTabStrip