先看一下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);//返回这个集合中的每一个文案
}
}
}