0
点赞
收藏
分享

微信扫一扫

android viewpager2 + layout 不用fragment

Star英 2023-07-16 阅读 66

Android ViewPager2 + Layout实现方法

引言

在Android开发中,ViewPager2是一个非常常用的控件,用于实现滑动切换不同页面的功能。通常情况下,ViewPager2与Fragment一起使用,以实现每个页面的内容和逻辑。但是,有时候我们可能不希望使用Fragment,而是直接使用Layout来展示页面内容。在本文中,我将向你展示如何使用ViewPager2和Layout来实现这个需求。

实现步骤

设置步骤如下:

步骤 操作
1 创建一个新的Android项目
2 在app模块的build.gradle文件中添加ViewPager2的依赖
3 在layout文件中添加ViewPager2控件
4 创建适配器(Adapter)类
5 创建每个页面的布局文件
6 在MainActivity中配置ViewPager2和适配器

接下来,让我们一步一步地进行操作。

步骤1:创建一个新的Android项目

首先,你需要创建一个新的Android项目。在Android Studio中,选择"File -> New -> New Project",然后按照向导完成项目的创建。

步骤2:添加ViewPager2依赖

在app模块的build.gradle文件中,添加以下依赖:

dependencies {
    implementation 'androidx.viewpager2:viewpager2:1.0.0'
}

这将确保我们可以使用ViewPager2控件。

步骤3:添加ViewPager2控件

在你想要展示ViewPager2的布局文件中,添加以下代码:

<androidx.viewpager2.widget.ViewPager2
    android:id="@+id/viewPager2"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

这将在布局中添加一个ViewPager2控件,用于展示不同的页面。

步骤4:创建适配器(Adapter)类

创建一个新的Java类,命名为"ViewPagerAdapter"。让它继承自RecyclerView.Adapter,并实现RecyclerView.Adapter的三个方法:onCreateViewHolder、onBindViewHolder和getItemCount。代码如下:

public class ViewPagerAdapter extends RecyclerView.Adapter<ViewPagerAdapter.ViewHolder> {

    private List<View> views;

    public class ViewHolder extends RecyclerView.ViewHolder {
        public ViewHolder(View itemView) {
            super(itemView);
        }
    }

    public ViewPagerAdapter(List<View> views) {
        this.views = views;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.page_layout, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        View view = views.get(position);
        ViewGroup parent = (ViewGroup) view.getParent();
        if (parent != null) {
            parent.removeView(view);
        }
        holder.itemView.addView(view);
    }

    @Override
    public int getItemCount() {
        return views.size();
    }
}

这个适配器类将负责将每个页面的布局添加到ViewPager2中。

步骤5:创建每个页面的布局文件

在res/layout目录下,创建一个名为"page_layout.xml"的布局文件。在该文件中,添加你想要展示的页面的布局代码。例如:

<LinearLayout xmlns:android="
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="24sp"
        android:text="Page 1" />

</LinearLayout>

步骤6:配置ViewPager2和适配器

在MainActivity中,添加以下代码:

public class MainActivity extends AppCompatActivity {

    private ViewPager2 viewPager2;
    private ViewPagerAdapter adapter;

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

        viewPager2 = findViewById(R.id.viewPager2);

        List<View> views = new ArrayList<>();
        views.add(getLayoutInflater().inflate(R.layout.page_layout, viewPager2, false));
        views.add(getLayoutInflater().inflate(R.layout.page_layout, viewPager2, false));
        views.add(getLayoutInflater().inflate(R.layout.page_layout, viewPager2, false));

        adapter = new ViewPagerAdapter(views);
        viewPager2.setAdapter(adapter);
    }
}

在这段代码中,我们首先通过findViewById获取了ViewPager2控

举报

相关推荐

0 条评论