ViewPagerIndicator的简单实用

ViewPagerIndicator是一个出来很久了框架了,非常的好用这里就不过多介绍了。在ViewPagerIndicator的众多indicator中最常用的就是TabPageIndicator了,下面就以TabPageIndicator简单的说一下ViewPagerIndicator的用法。

1、资源引用
以AndroidStudio为例
(1)先去下载ViewPagerIndicator项目。
(2)在下载资源以后,打开AndroidStudio点击File—>Project Structure—->点击左上角加号—->选择 Import Eclipse ADT Project完成以后选择Dependencies然后右上角加号选择Module dependency。最后选择相应的资源添加上就可以了
2、布局文件
布局长这个样子很简单

<? 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"
    android :orientation= "vertical">

    <com.viewpagerindicator.TabPageIndicator
        android:id= "@+id/indicator_TabPage"
        android:layout_width= "match_parent"
        android:layout_height= "50dp"
        android:fillViewport= "false" >

    </com.viewpagerindicator.TabPageIndicator >

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

</LinearLayout >

3、Activity类

package example.lc.com.viewpageindicatortext;

import android.app.Activity;
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;

import com.viewpagerindicator.IconPagerAdapter;
import com.viewpagerindicator.TabPageIndicator;

import example.lc.com.viewpageindicatortext.fragment.NewFragment;

/**
* Created by HP on 2016/8/29.
*/
public class TabPageIndicator_AC extends FragmentActivity {

    private String[] tabs;
    private TabPageIndicator mTabindicator;
    private ViewPager vp_tabIndicator;

    private MyAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super .onCreate(savedInstanceState);
        setContentView(R.layout. tabpageindicator_ac);
        initArrays();
        initViews();
    }

    private void initArrays() {
        tabs = getResources().getStringArray(R.array. indicator_titles);
    }

    private void initViews() {
        mTabindicator = (TabPageIndicator) findViewById(R.id. indicator_TabPage);
        vp_tabIndicator = (ViewPager) findViewById(R.id. vp_tabIndicator);
        adapter = new MyAdapter(getSupportFragmentManager());
        vp_tabIndicator .setAdapter( adapter);
        //给ViewPagerIndicator设置ViewPager
        mTabindicator.setViewPager( vp_tabIndicator);
        vp_tabIndicator .setOffscreenPageLimit( 1);
    }

    private class MyAdapter extends FragmentPagerAdapter implements IconPagerAdapter {
        public MyAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem( int position) {
            NewFragment fragment = new NewFragment();
            Bundle bundle = new Bundle();
            bundle.putString( "title", tabs[position]);
            fragment.setArguments(bundle);
            return fragment;
        }

        /**
         * 定义tittle标题
         */
        @Override
        public CharSequence getPageTitle( int position) {
            return tabs [position % tabs . length];
        }

        @Override
        public int getIconResId( int index) {
            return 0 ;
        }

        @Override
        public int getCount() {
            return tabs .length ;
        }
    }
}

这个类做的事情也很简单,就是分别将ViewPage和Indicator设置好,最后通过setViewPager()方法将二者进行关联。
3、Fragment类
(1)BaseFragment

package example.lc.com.viewpageindicatortext.fragment;

import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
* Created by HP on 2016/9/8.
*/
public class BaseFragment extends Fragment {
    private static final String TAG= "BaseFragment";

    //判断当前Fragment是否可见
    private boolean isVisible ;
    @Override
    public void onAttach(Context context) {
        super .onAttach(context);
        Log.e( TAG ,"onAttach" );

    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super .onCreate(savedInstanceState);
        Log.e( TAG ,"onCreate" );
    }

    @Override
    public void setUserVisibleHint( boolean isVisibleToUser) {
        super .setUserVisibleHint(isVisibleToUser);
        if (getUserVisibleHint())
        {
            isVisible= true;
            TrueVisible();
        }
        else
        {
            isVisible= false;
            FalseVisible();
        }
    }

    private void FalseVisible() {
        Log.e( TAG ,"FalseVisible" );
    }

    private void TrueVisible() {
        Log.e( TAG ,"TrueVisible" );
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        Log.e( TAG ,"onCreateView" );
        return super .onCreateView(inflater, container, savedInstanceState);

    }

}

(2)NewFragment.java

package example.lc.com.viewpageindicatortext.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 android.widget.Toast;

import example.lc.com.viewpageindicatortext.R;

/**
* Created by HP on 2016/9/4.
*/
public class NewFragment extends BaseFragment {

    private TextView tv_item;
    private String content;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout. fragment_item, container, false);
        Bundle bundle = getArguments();
        content = bundle.getString( "title");
        initViews(view);
        return view;
    }

    private void initViews(View view) {
        tv_item = (TextView) view.findViewById(R.id. tv_item);
        tv_item .setText( content);
        Toast.makeText(getActivity(), content,Toast. LENGTH_SHORT );
    }
}

4、其他资源

< resources>
    <string name= "app_name">ViewPageIndicatorText</ string>
    <string-array name= "indicator_titles">
        < item>要闻</ item>
        < item>视频</ item>
        < item>天津</ item>
        < item>财经</ item>
        < item>娱乐</ item>
        < item>体育</ item>
        < item>科技</ item>
        < item>社会</ item>
        </ string-array>

</resources >

5、运行效果
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ViewPagerIndicator是一个Android库,用于在ViewPager中添加指示器,以帮助用户了解当前页面的位置。它提供了多种指示器样式和自定义选项,可以轻松地与ViewPager集成。它是由Jake Wharton开发的,是一个广泛使用的库。 ### 回答2: ViewPagerIndicator是一个Android库,用于在ViewPager上添加标签指示器。它提供了一种简单而强大的方法来管理ViewPager的标签指示器,帮助用户在不同页面之间进行导航。该库是由Jake Wharton开发的,他是一位著名的Android程序员,也是Square公司的工程师。 使用ViewPagerIndicator可以为ViewPager添加多种类型的标签指示器,如圆形指示器、文字指示器、图片指示器等。你可以根据自己的需求选择合适的标签指示器样式,并自定义其外观和行为。该库支持水平和垂直方向的滑动,并兼容较旧的Android版本。 ViewPagerIndicator的使用非常简单,首先需要在项目中引入该库的依赖。然后,在布局文件中添加ViewPager和指示器,通过ViewPagerIndicator提供的适配器类将ViewPager和指示器绑定在一起。最后,你可以根据需要自定义指示器的样式、颜色等属性。 ViewPagerIndicator不仅提供了标签指示器,还包含其他一些有用的功能。例如,你可以通过ViewPagerIndicator轻松实现ViewPager的循环滚动,使第一页和最后一页之间实现无缝连接。此外,该库还支持自定义动画效果和触摸事件处理。 总之,ViewPagerIndicator是一个强大而灵活的Android库,为ViewPager添加标签指示器提供了便利。它可以帮助你更好地管理ViewPager的页面导航,并提供了丰富的自定义选项。无论是初学者还是有经验的Android开发者,都可以轻松地使用ViewPagerIndicator来改善用户界面的体验。 ### 回答3: ViewPagerIndicator是一个开源的视图指示器库,用于辅助在Android应用中实现ViewPager的指示器功能。它与ViewPager控件配合使用,为用户提供了一种方便的方式来切换页面,并显示当前页面的指示器。 ViewPagerIndicator的主要特点是简单易用和高度可定制。它提供了多种指示器样式,包括圆形、线性、文字等等,用户可以根据自己的需求选择合适的样式。同时,它还支持自定义指示器的颜色、大小、边距等属性,使用户可以完全控制指示器的外观。 除了基本的指示器功能之外,ViewPagerIndicator还提供了一些附加功能,如循环滚动、标题栏指示器等。循环滚动功能可以让用户在最后一个页面滑动时自动跳转到第一个页面,实现无限循环。标题栏指示器可以将指示器放置在标题栏上,使得用户可以在顶部直接切换页面,提升用户体验。 ViewPagerIndicator的使用也非常简单,只需要在项目中添加相应的依赖库,并在布局文件中配置指示器,然后在代码中设置ViewPager与指示器的关联即可。对于初学者来说,它是一个很好的学习资料,帮助他们快速地了解和使用ViewPager以及指示器的相关知识。 总而言之,ViewPagerIndicator是一个功能强大、简单易用的ViewPager指示器库,为开发者提供了丰富的样式和属性选择,帮助他们快速实现ViewPager的指示器功能,提升应用的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值