ViewPager +Fragment 滑动游标

一、我的博客https://github.com/anan03/ananwork/tree/master/anan
1.加入
compile 'com.gxz.pagerslidingtabstrip:library:1.3.1'
2.加入布局;
<com.gxz.PagerSlidingTabStrip
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="40dp" />

<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tabs" />
3.查找控件设置属性
 pager = (ViewPager) findViewById(R.id.pager);
tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
list.add("Tab " + i);
}
pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager(), list));
tabs.setViewPager(pager);
pager.setCurrentItem(1);
setTabsValue();
}
private PagerSlidingTabStrip tabs;
private ViewPager pager;
/**
* PagerSlidingTabStrip的各项属性进行赋值。
*/
private void setTabsValue() {
// 设置Tab是自动填充满屏幕的
tabs.setShouldExpand(true);

// 设置Tab的分割线的颜色
tabs.setDividerColor(getResources().getColor(R.color.color_80cbc4));
// 设置分割线的上下的间距,传入的是dp
tabs.setDividerPaddingTopBottom(12);

// 设置Tab底部线的高度,传入的是dp
tabs.setUnderlineHeight(1);
//设置Tab底部线的颜色
tabs.setUnderlineColor(getResources().getColor(R.color.color_1A000000));

// 设置Tab 指示器Indicator的高度,传入的是dp
tabs.setIndicatorHeight(4);
// 设置Tab Indicator的颜色
tabs.setIndicatorColor(getResources().getColor(R.color.color_45c01a));

// 设置Tab标题文字的大小,传入的是dp
tabs.setTextSize(16);
// 设置选中Tab文字的颜色
tabs.setSelectedTextColor(getResources().getColor(R.color.color_45c01a));
//设置正常Tab文字的颜色
tabs.setTextColor(getResources().getColor(R.color.color_C231C7));

// 设置点击Tab时的背景色
tabs.setTabBackground(R.drawable.background_tab);

//是否支持动画渐变(颜色渐变和文字大小渐变)
tabs.setFadeEnabled(true);
// 设置最大缩放,是正常状态的0.3
tabs.setZoomMax(0.3F);
//设置Tab文字的左右间距,传入的是dp
tabs.setTabPaddingLeftRight(20);
tabs.setOnPagerTitleItemClickListener(new PagerSlidingTabStrip.OnPagerTitleItemClickListener() {
@Override
public void onSingleClickItem(int position) {
Toast.makeText(MainActivity.this, "单击", Toast.LENGTH_SHORT).show();
}

@Override
public void onDoubleClickItem(int position) {
Toast.makeText(MainActivity.this, "双击", Toast.LENGTH_SHORT).show();
}
});

4.设置适配器以及Fragment
package com.lvshandian.myapplication.adapter;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.view.ViewGroup;

import com.lvshandian.myapplication.fragment.FragmentContent;

import java.util.ArrayList;

/**
* @author 顾修忠-guxiuzhong@youku.com/gfj19900401@163.com
* @Title: MyPagerAdapter
* @Package com.guxiuzhong.pagerslidingtabstrip.adapter
* @Description:
* @date 15/11/29
* @time 下午12:53
*/
public class MyPagerAdapter extends FragmentPagerAdapter {

private ArrayList<String> titles;

public MyPagerAdapter(FragmentManager fm, ArrayList<String> list) {
super(fm);
this.titles = list;
}


@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}

@Override
public int getCount() {
return titles.size();
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
return super.instantiateItem(container, position);
}

@Override
public Fragment getItem(int position) {
Bundle b = new Bundle();
b.putString("title", titles.get(position));
return FragmentContent.getInstance(b);
}
}

Fragment
package com.lvshandian.myapplication.fragment;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.lvshandian.myapplication.R;


/**
* Created by guxiuzhong on 2015/7/6.
*/
public class FragmentContent extends Fragment {

public static Fragment getInstance(Bundle bundle) {
FragmentContent fragment = new FragmentContent();
fragment.setArguments(bundle);
return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragmnet_layout, container, false);
}

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
initView(view);
}

private void initView(View view) {
TextView tv = (TextView) view.findViewById(R.id.tv_id);
tv.setText(getArguments().getString("title"));
}
}

二、原博客
https://github.com/ta893115871/PagerSlidingTabStrip

https://github.com/astuetz/PagerSlidingTabStrip

https://github.com/gb-nick/PagerSlidingTabStrip




 
posted @ 2016-12-15 18:15  张亚楠  阅读(1484)  评论(0编辑  收藏  举报