ViewPage使用(一)

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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值