欢迎光临散文网 会员登陆 & 注册

Android 丝滑切换展示页的ViewPager最简单用法

2023-06-22 02:33 作者:翼618  | 我要投稿


网上帖子都狠复杂,我整个最简单的,能用就好,希望能帮到大家:

用到的类列表如下,用到的具体都贴出来了,根据需要直接拿走改把。

A_LogInActivity (需要添加控件的对应类)

activity_a__log_in (就布局,我这里就添加了一个ViewPager 下面贴出来了,直接拷走)

PagerAdapater (ViewPager用到的具体类,对应的东西在里面改也行,传出去也行)

item_launch(ViewPager用到的最简单布局)




首先是用到的xml

这个放到对应的activity的xml布局里面


    <android.support.v4.view.ViewPager

        android:id="@+id/vp_content"

        android:layout_width="match_parent"

        android:layout_height="300dp" />


----------------------我是分割线-------------------------------

然后 activity   具体代码,红色部分就是新的,你可以直接拷走用:


public class A_LogInActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener {


    private List<String> mStringList;


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_a__log_in);


        mStringList =  new ArrayList<>();

        mStringList.add("1");

        mStringList.add("2");// 这个随便弄 我改成要不要都行,一般都会动态创建就是了


        // 构建一个商品图片的翻页适配器

        PagerAdapater adapter = new PagerAdapater(this, mStringList);

        // 从布局视图中获取名叫vp_content的翻页视图

        ViewPager vp_content = (ViewPager) findViewById(R.id.vp_content);

        vp_content.setAdapter(adapter); // 设置翻页视图的适配器

        vp_content.setCurrentItem(0); // 设置翻页视图显示第一页  切换页面可以用这个方法

        vp_content.addOnPageChangeListener(this); // 给翻页视图添加页面变更监听器


    }


    // 翻页状态改变时触发。state取值说明为:0表示静止,1表示正在滑动,2表示滑动完毕

    // 在翻页过程中,状态值变化依次为:正在滑动→滑动完毕→静止

    public void onPageScrollStateChanged(int state) {}


    // 在翻页过程中触发。该方法的三个参数取值说明为 :第一个参数表示当前页面的序号

    // 第二个参数表示页面偏移的百分比,取值为0到1;第三个参数表示页面的偏移距离

    public void onPageScrolled(int position, float ratio, int offset) {}


    // 在翻页结束后触发。position表示当前滑到了哪一个页面

    public void onPageSelected(int position) {

        Toast.makeText(this, "测试滑动:" + mGoodsList.get(position), Toast.LENGTH_SHORT).show();

    }


}

----------------------我是分割线-------------------------------

然后是 PagerAdapater的内容,整个直接挪走改吧:



    public class PagerAdapater extends PagerAdapter {

    // 声明一个视图列表

    private List<View> mViewList = new ArrayList<View>();

    // 这个值没用了

    private List<String> stringList = new ArrayList<String>();


    // 图像翻页适配器的构造方法,可以根据传入的list来创建多少个页面 我这里没用到 只留下个写法

    public PagerAdapater(Context context, List<String> stringList) {

        stringList = stringList;

        /**

         * 第一个页面

         * item_launch 这个是我新建的xml页面 里面就一个按钮,你完全可以自己随意新建随意改

         */

        View LiView = LayoutInflater.from(context).inflate(R.layout.item_launch, null);

         // 将对应的布局添加进去  add几次就会有几个页面!!!要几个页面就只管加

        mViewList.add(LiView);

        Button btn_start = LiView.findViewById(R.id.btn_start);



        /**

         * 第一个页面

         */

        View LiView1 = LayoutInflater.from(context).inflate(R.layout.item_launch1, null);

        mViewList.add(LiView1); // 将对应的布局添加进去

        Button btn_start2 = LiView1.findViewById(R.id.btn_start);

    }


    // 获取页面项的个数

    public int getCount() {

        return mViewList.size();

    }


    // 判断当前视图是否来自指定对象

    public boolean isViewFromObject(View view, Object object) {

        return view == object;

    }


    // 从容器中销毁指定位置的页面

    public void destroyItem(ViewGroup container, int position, Object object) {

        container.removeView(mViewList.get(position));

    }


    // 实例化指定位置的页面,并将其添加到容器中

    public Object instantiateItem(ViewGroup container, int position) {

        container.addView(mViewList.get(position));

        return mViewList.get(position);

    }


    // 获得指定页面的标题文本

    public CharSequence getPageTitle(int position) {

        return mGoodsList.get(position);

    }

}

----------------------我是分割线-------------------------------

对应的Adapater用到的xml

这个可以随便改,随便创建,自己把名字对应上就好 

item_launch

item_launch1 两个XML我这里一样的内容  根据自己需要直接改吧

单纯就一个button,不加太多复杂的东西了


<?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">


    <Button

        android:layout_gravity="center_horizontal"

        android:id="@+id/btn_start"

        android:layout_width="300dp"

        android:layout_height="45dp"

        android:text="登录"

         />

</LinearLayout>

----------------------我是分割线-------------------------------

附上两张我修改好的页面截图,根据上面代码你应该能得到一个滑动切换的ViewPager

如果要像我一样点击切换就用

 vp_content.setCurrentItem(0); 

方法参数代表第几个页面。

页面1
页面2



Android 丝滑切换展示页的ViewPager最简单用法的评论 (共 条)

分享到微博请遵守国家法律