zoukankan      html  css  js  c++  java
  • 【Android界面实现】使用PagerTabStrip实现有滑动标签的Viewpager

        在ViewPager这样的能够滑动的控件上,总是有非常多的文章能够做。上次的文章。我们实现了一个自己定义的ViewPager的指示器。这篇文章,我们主要是想利用Android自带的控件,实现一个指示器,这个控件,就是support-v4包里面的PagerTabStrip控件。

        首先,我们先看一下实现效果,大饱眼福。




        能够看到,效果实现的也是非常棒。比之前自己定义的标签指示器更加的流畅。以下,简介一下PagerTabStrip和它的使用。

        PagerTabStrip是v4支持包里面的类,是ViewPager专用的类,不能在其它地方使用。在使用的时候。我们仅仅须要在ViewPager的布局里面声明就可以。

        如以下的代码

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@android:color/white"
        android:orientation="vertical" >
    
        <android.support.v4.view.ViewPager
            android:id="@+id/viewPager"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
    
            <android.support.v4.view.PagerTabStrip
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="top"
                android:background="@android:color/holo_blue_light"
                android:textColor="@android:color/white" />
        </android.support.v4.view.ViewPager>
    
    </LinearLayout>

        我们能够设置layout_gravity属性,比方top或者是bottom,来控制显示的位置。除此之外,不须要进行其它设置。

        剩下的。就是我们须要在代码里面实现的了。

    import java.util.ArrayList;
    import java.util.List;
    
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentActivity;
    import android.support.v4.app.FragmentPagerAdapter;
    import android.support.v4.view.ViewPager;
    
    public class PagerTabStripActivity extends FragmentActivity {
    
    	private List<Fragment> fragments;
    	private ViewPager viewPager;
    	private List<String> titleList;
    
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    		initView();
    	}
    
    	private void initView() {
    		viewPager = (ViewPager) findViewById(R.id.viewPager);
    
    		titleList = new ArrayList<String>();
    		titleList.add("最新推荐");
    		titleList.add("游戏娱乐");
    		titleList.add("影音视频");
    
    		fragments = new ArrayList<Fragment>();
    		fragments.add(new MyFragment(android.R.color.holo_green_light));
    		fragments.add(new MyFragment(android.R.color.holo_orange_light));
    		fragments.add(new MyFragment(android.R.color.holo_red_light));
    
    		FragmentPagerAdapter adapter = new FragmentPagerAdapter(
    				getSupportFragmentManager()) {
    
    			@Override
    			public int getCount() {
    				return 3;
    			}
    
    			@Override
    			public Fragment getItem(int position) {
    				return fragments.get(position);
    			}
    
    			@Override
    			public CharSequence getPageTitle(int position) {
    				return titleList.get(position);
    			}
    
    		};
    
    		viewPager.setAdapter(adapter);
    
    	}
    }

        在上面的代码里面。展现了我们怎样控制标题的文字,我们仅仅须要重写getPagerTitle方法就可以。假设不想要以下的指示器,把PagerTabStrip换成PagerTitlestrip就可以。

    能够把剩下的。就交给伟大的Android系统去做吧。

  • 相关阅读:
    UVALive 6909 Kevin's Problem 数学排列组合
    UVALive 6908 Electric Bike dp
    UVALive 6907 Body Building tarjan
    UVALive 6906 Cluster Analysis 并查集
    八月微博
    hdu 5784 How Many Triangles 计算几何,平面有多少个锐角三角形
    hdu 5792 World is Exploding 树状数组
    hdu 5791 Two dp
    hdu 5787 K-wolf Number 数位dp
    hdu 5783 Divide the Sequence 贪心
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7080927.html
Copyright © 2011-2022 走看看