ViewPage使用(一)
效果图
mainActivity.java
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.PagerTitleStrip;
import androidx.viewpager.widget.ViewPager;
import java.util.ArrayList;
import java.util.List;
import fengxing.primer.textlink.R;
public class ViewpageActivity extends AppCompatActivity {
private ViewPager vp_change_page;
private PagerTitleStrip pts_page_title;//每一页标题
private List<View> layoutList;//每一页的布局
private List<String> titleList;//标题
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_viewpage);
initView();
}
private void initView() {
vp_change_page = findViewById(R.id.vp_change_page);
pts_page_title = findViewById(R.id.pts_page_title);
//动态加载页面布局
View page1 = LayoutInflater.from(ViewpageActivity.this).inflate(R.layout.page1,null);
View page2 = LayoutInflater.from(ViewpageActivity.this).inflate(R.layout.page2,null);
View page3 = LayoutInflater.from(ViewpageActivity.this).inflate(R.layout.page3,null);
layoutList = new ArrayList<View>();
layoutList.add(page1);
layoutList.add(page2);
layoutList.add(page3);
titleList = new ArrayList<String>();
titleList.add("页面一");
titleList.add("页面二");
titleList.add("页面三");
//设置适配器
vp_change_page.setAdapter(new MyPagerAdapter(layoutList,titleList));
}
}
pageAdapter.java
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import java.util.List;
class MyPagerAdapter extends PagerAdapter {
private List<View> list;
private List<String> titleList;
public MyPagerAdapter(List<View> list, List<String> titleList) {
this.list = list;
this.titleList = titleList;
}
@Override
public int getCount() {
return list.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view==object;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
//super.destroyItem(container, position, object);
((ViewPager)container).removeView(list.get(position));
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return titleList.get(position);
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
((ViewPager)container).addView(list.get(position));
return list.get(position);
}
}
mainLayout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.viewpager.widget.ViewPager
android:layout_gravity="center"
android:id="@+id/vp_change_page"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<androidx.viewpager.widget.PagerTitleStrip
android:layout_gravity="top"
android:id="@+id/pts_page_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</androidx.viewpager.widget.PagerTitleStrip>
</androidx.viewpager.widget.ViewPager>
</RelativeLayout>
pageLayout.xml
每个页面可自由发挥
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="@drawable/back1"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>