ViewPagerIndicator(ViewPager指示器)

来源:互联网 发布:ge家电 知乎 编辑:程序博客网 时间:2024/06/07 14:51

ViewPager划动时下滑线跟随并且显示不同内容

(仿今日头条上面的标签)效果如图:
第一页
第二页
要想实现以上效果可根据项目中提供的字段名进行变更,以下只是个人学习时总结的一小部分,如有不妥可留言,互相学习共同进步。
1、首先下载PagerSlidingTabStripLib库包(第三方)
2、创建自己的项目并与以上库包关联
3、在activity_main.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"    xmlns:app="http://schemas.android.com/apk/res/com.bwie.viewpagerindection">    <!-- 17731775956 --><LinearLayout     android:layout_width="match_parent"    android:layout_height="40dp"    android:orientation="horizontal"    >    <com.astuetz.PagerSlidingTabStrip        android:layout_width="0dp"        android:layout_weight="1"        android:layout_height="40dp"        android:id="@+id/psts"        app:pstsIndicatorColor="#ff08"        app:pstsIndicatorHeight="3dp"        ></com.astuetz.PagerSlidingTabStrip>    <ImageView         android:layout_width="40dp"        android:layout_height="match_parent"        android:id="@+id/iv"        android:background="@drawable/ic_launcher"        /></LinearLayout>   <android.support.v4.view.ViewPager       android:layout_width="match_parent"       android:layout_height="match_parent"       android:id="@+id/vp"       ></android.support.v4.view.ViewPager></LinearLayout>

4、代码中实现部分

package com.bwie.viewpagerindection;import com.astuetz.PagerSlidingTabStrip;import com.bwie.viewpagerindection.fragment.ErrorFrag;import com.bwie.viewpagerindection.fragment.Frag1;import com.bwie.viewpagerindection.fragment.Frag2;import com.bwie.viewpagerindection.fragment.Frag3;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;public class MainActivity extends FragmentActivity {    // 标签栏    String arr[]={"推荐","热点","北京","视频","社会","科技","汽车","体育","财经","娱乐"};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //找控件        PagerSlidingTabStrip psts = (PagerSlidingTabStrip) findViewById(R.id.psts);        ViewPager vp = (ViewPager) findViewById(R.id.vp);        //为viewPager设置适配器        vp.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));        //与ViewPager设置关联        psts.setViewPager(vp);    }    //定义MyPagerAdapter类继承FragmentPagerAdapter并实现方式     class MyPagerAdapter extends FragmentPagerAdapter {        //构造方法        public MyPagerAdapter(FragmentManager fm) {            super(fm);        }        //得到Fragment        @Override        public Fragment getItem(int position) {            //根据滑动得到不同fragment            switch (position) {            case 0:                return new Frag1();            case 1:                return new Frag2();            case 2:                return new Frag3();            default:                return new ErrorFrag();            }        }        @Override        public int getCount() {            return arr.length;        }        //返回字段(必填)        @Override        public CharSequence getPageTitle(int position) {            return arr[position];        }    }}

5、每个Fragment中填写具体的内容此处不一一列举。

package com.bwie.viewpagerindection.fragment;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 Frag1 extends Fragment {    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,            Bundle savedInstanceState) {        TextView tv=new TextView(getActivity());        tv.setText("推荐");        return tv;    }}
0 0
原创粉丝点击