PagerTabStrip与PagerTitleStrip,为ViewPager设置标题

证实ViewPager可以显示布局文件

PagerTitleStrip的使用:

MainActivity.java   方法的具体解释见:广告条的实现ViewPager,左右滑动,切换图片

import java.util.ArrayList;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.PagerTitleStrip;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;

/**
证实可以为ViewPager可以显示布局文件
 */
public class MainActivity extends Activity {

    private ArrayList<View> list;//显示ViewPager的页面
    private String[] title={"第一个","第二个","第三个"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ViewPager viewPager=(ViewPager) findViewById(R.id.viewPager);
        //ViewPager的标题
        PagerTitleStrip pagertitle= (PagerTitleStrip) findViewById(R.id.pts_titlesd);
        //为标题设置tab的样式
        pagertitle.setBackgroundColor(Color.BLUE);
          //为标题设置字体样式
        pagertitle.setTextColor(Color.RED);
        list = new ArrayList<View>();
        //将布局显示在ViewPager上
        View view1 = View.inflate(this, R.layout.pager_01, null);
        View view2 = View.inflate(this, R.layout.pager_02, null);
        View view3 = View.inflate(this, R.layout.pager_03, null);
        list.add(view1);
        list.add(view2);
        list.add(view3);
        viewPager.setAdapter(new MyPagerAdapter());
    }
    class MyPagerAdapter extends PagerAdapter{

        @Override
        public int getCount() {
            return list.size();
        }
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            View view = list.get(position);
            container.addView(view);
            return view;
        }
        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view==object;
        }
        
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView((View) object);
            object=null;
        }
        /**
         * 为ViewPager设置标题,与页面会一一对应
         */
        @Override
        public CharSequence getPageTitle(int position) {
            return title[position];
        }
    }
}

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"
    tools:context=".MainActivity" >
 <!-- PagerTitleStrip作为ViewPager页面的标题 -->
    <android.support.v4.view.ViewPager
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/viewPager">
        
         <android.support.v4.view.PagerTitleStrip
            android:id="@+id/pts_titlesd"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
        </android.support.v4.view.PagerTitleStrip>
        
    </android.support.v4.view.ViewPager>
</LinearLayout>

pager_01.xml  pager_02  03都为这样的布局

<?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"
    android:background="#ffcccc"
    android:gravity="center">
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="pager01"
        android:textSize="30sp"/>

</LinearLayout>

效果如下:

PagerTabStrip的使用:比上面那个标题多了一个下划线

import java.util.ArrayList;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;

public class MainActivity extends Activity {

    private ArrayList<View> list;//显示ViewPager的页面
    private String[] title={"第一个","第二个","第三个"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ViewPager viewPager=(ViewPager) findViewById(R.id.viewPager);
        //ViewPager的标题
        PagerTabStrip pagertable= (PagerTabStrip) findViewById(R.id.pts_titlesd);
        //为标题设置tab的样式
        pagertable.setBackgroundColor(Color.BLUE);
          //为标题设置字体样式
        pagertable.setTextColor(Color.RED);
        //设置线条样式,标题下滑线的颜色
        pagertable.setTabIndicatorColor(Color.YELLOW);
        list = new ArrayList<View>();
        //将布局显示在ViewPager上
        View view1 = View.inflate(this, R.layout.pager_01, null);
        View view2 = View.inflate(this, R.layout.pager_02, null);
        View view3 = View.inflate(this, R.layout.pager_03, null);
        list.add(view1);
        list.add(view2);
        list.add(view3);
        viewPager.setAdapter(new MyPagerAdapter());
    }
    class MyPagerAdapter extends PagerAdapter{

        @Override
        public int getCount() {
            return list.size();
        }
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            View view = list.get(position);
            container.addView(view);
            return view;
        }
        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view==object;
        }
        
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView((View) object);
            object=null;
        }
        /**
         * 为ViewPager设置标题,与页面会一一对应
         */
        @Override
        public CharSequence getPageTitle(int position) {
            return title[position];
        }
    }
}

activity_main.xml:

<RelativeLayout 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.support.v4.view.ViewPager
        android:id="@+id/vp_pagers"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
        <android.support.v4.view.TitleStrip
            android:id="@+id/pts_titles"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            >
        </android.support.v4.view.TitleStrip>
    </android.support.v4.view.ViewPager>

</RelativeLayout>

ViewPager的页面布局文件和第一个一样

效果图:

posted @ 2016-08-17 19:53  ts-android  阅读(766)  评论(0编辑  收藏  举报