Android ViewPager滚动视图

先看一下xml文件下的布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 
    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">

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

        <android.support.v4.view.PagerTabStrip
            android:id="@+id/pagerTabStrip"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

        </android.support.v4.view.PagerTabStrip>
    </android.support.v4.view.ViewPager>

</android.support.constraint.ConstraintLayout>

注意:一定要是ViewPager嵌套PagerTabStrip

下面是主类(设置文本滚动视图):

package com.example.day14rklx;

import android.graphics.Color;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private ViewPager viewPager;
    private PagerTabStrip pagerTabStrip;
    private List<TextView> textViews = new ArrayList<>();
    private List<String> tablist=new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        viewPager = findViewById(R.id.viewPager);
        pagerTabStrip = findViewById(R.id.pagerTabStrip);

        //对标题进行设置
        pagerTabStrip.setTextColor(Color.WHITE);//设置文案的大小
        pagerTabStrip.setBackgroundColor(Color.BLUE);//设置背景色
        pagerTabStrip.setTabIndicatorColor(Color.GREEN);//设置指示标颜色

        //标题添加信息
        tablist.add("我是天才1号");
        tablist.add("我是天才2号");
        tablist.add("我是天才3号");
        tablist.add("我是天才4号");
        tablist.add("我是天才5号");

        //滚动文本
        TextView textView1 = new TextView(MainActivity.this);
        textView1.setText("我是天才1号");
        textView1.setTextSize(24);
        textView1.setTextColor(Color.BLUE);

        TextView textView2 = new TextView(MainActivity.this);
        textView2.setText("我是天才2号");
        textView2.setTextSize(24);
        textView2.setTextColor(Color.BLUE);

        TextView textView3 = new TextView(MainActivity.this);
        textView3.setText("我是天才3号");
        textView3.setTextSize(24);
        textView3.setTextColor(Color.BLUE);

        TextView textView4 = new TextView(MainActivity.this);
        textView4.setText("我是天才4号");
        textView4.setTextSize(24);
        textView4.setTextColor(Color.BLUE);

        TextView textView5 = new TextView(MainActivity.this);
        textView5.setText("我是天才5号");
        textView5.setTextSize(24);
        textView5.setTextColor(Color.BLUE);

        textViews.add(textView1);
        textViews.add(textView2);
        textViews.add(textView3);
        textViews.add(textView4);
        textViews.add(textView5);

        //界面空间进行适配(注意继承PagerAdapter)
        viewPager.setAdapter(new MyAdapter());


    }

    //适配器
    class MyAdapter extends PagerAdapter {

        @Override
        public int getCount() {
            return textViews.size();
        }

        @Override
        public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
            return view == object;
        }

        //重写instantiateItem方法进行视图添加
        @NonNull
        @Override
        public Object instantiateItem(@NonNull ViewGroup container, int position) {
            container.addView(textViews.get(position));
            return textViews.get(position);
        }

        //重写destoryItem方法进行视图删除
        @Override
        public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
            container.removeView(textViews.get(position));
        }

        //重写getPageTitle方法,返回标题文案内容
        @Nullable
        @Override
        public CharSequence getPageTitle(int position) {
            return tablist.get(position);
        }
    }
}

设置图片滚动视图:

package com.example.day14rk;

import android.graphics.Color;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.PagerTitleStrip;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import org.w3c.dom.Text;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {


    private ViewPager viewPager;
    private PagerTitleStrip pagerTabStrip;//pagertitlestrip 跟 pagertabstrip 一个用法
    private List<String> tablist = new ArrayList<>();
    private List<ImageView> imageViews=new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        viewPager = findViewById(R.id.viewPager);
        pagerTabStrip = findViewById(R.id.pagerTabstrip);

        //设置pagerTabStrip的属性
        pagerTabStrip.setTextColor(Color.WHITE);//文案设置颜色为白色
        pagerTabStrip.setBackgroundColor(Color.BLUE);//背景颜色
//        pagerTabStrip.setTabIndicatorColor(Color.RED);//指示器的颜色 就是文案下方花横线的部分

        tablist.add("我是天才1号");
        tablist.add("我是天才2号");
        tablist.add("我是天才3号");
        tablist.add("我是天才4号");
        tablist.add("我是天才5号");


        //滑动视图
        ImageView imageView1 = new ImageView(MainActivity.this);
        imageView1.setImageResource(R.mipmap.qq);

        ImageView imageView2 = new ImageView(MainActivity.this);
        imageView2.setImageResource(R.mipmap.ss_02);

        ImageView imageView3 = new ImageView(MainActivity.this);
        imageView3.setImageResource(R.mipmap.ss_03);

        ImageView imageView4 = new ImageView(MainActivity.this);
        imageView4.setImageResource(R.mipmap.ss_04);

        ImageView imageView5 = new ImageView(MainActivity.this);
        imageView5.setImageResource(R.mipmap.ss_05);

        imageViews.add(imageView1);
        imageViews.add(imageView2);
        imageViews.add(imageView3);
        imageViews.add(imageView4);
        imageViews.add(imageView5);


        viewPager.setAdapter(new MyAdapter());
    }

    class MyAdapter extends PagerAdapter {

        @Override
        public int getCount() {
            return imageViews.size();
        }

        @Override
        public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
            return view == object;
        }

        @NonNull
        @Override
        public Object instantiateItem(@NonNull ViewGroup container, int position) {
            container.addView(imageViews.get(position));
            return imageViews.get(position);

        }

        @Override
        public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
            container.removeView(imageViews.get(position));
        }

        //给pagerTabStrip进行赋值
        @Nullable
        @Override
        public CharSequence getPageTitle(int position) {

            return tablist.get(position);//返回这个集合中的每一个文案

        }
    }
}

猜你喜欢

转载自blog.csdn.net/LIXIAONA_1101/article/details/81130753
今日推荐