zoukankan      html  css  js  c++  java
  • 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




     
  • 相关阅读:
    Eclipse中构建scala开发环境的步骤
    Android中常见的坑有哪些?
    Android中有哪些好的开发框架?
    【redis专题(7)】命令语法介绍之Pub/Sub
    【redis专题(6)】命令语法介绍之hash
    【redis专题(5)】命令语法介绍之sets
    【redis专题(4)】命令语法介绍之sorted_set
    【redis专题(3)】命令语法介绍之link
    【redis专题(2)】命令语法介绍之string
    【redis专题(1)】安装与启动
  • 原文地址:https://www.cnblogs.com/huihuizhang/p/6184296.html
Copyright © 2011-2022 走看看