您的位置:首页 > 其它

ViewPagerIndicator(ViewPager指示器)

2016-06-21 21:03 211 查看

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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  viewpager