android学习,viewpage二fragment

android学习,viewpage二fragment先创建一个简单的吧,为了让以后的自己能看懂。一、修改activity_main.xml,添加一个viewpage2,为什么不添加viewpage

大家好,欢迎来到IT知识分享网。android学习,viewpage二fragment"

先创建一个简单的吧,为了让以后的自己能看懂。

一、修改activity_main.xml,添加一个viewpage2,为什么不添加viewpage,是因为viewpage2是后出的,有很多的新特性。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <androidx.viewpager2.widget.ViewPager2
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/viewpage"
        android:background="@color/teal_200"/>

</LinearLayout>

二,添加一个空白的fragment,然后在fragment里,把文本控件绑定,修改里面的文字。

    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        TextView tv=view.findViewById(R.id.fragment_text);
        tv.setText(mParam1);
    }

我这里用的这个函数是一个重写函数,这样就能更加的清楚,其它的地方,都是系统自动生成的,我没有动。

三,创建一个适配类,MyAdapter。

public class MyAdapter extends FragmentStateAdapter {
    private List<BlankFragment> data;//用来存放生成的fragment实例。
    public MyAdapter(@NonNull FragmentActivity fragmentActivity,List<BlankFragment> pages) {
        super(fragmentActivity);
        data=pages;//通过构造函数把实例集传进来
    }

    @NonNull
    @Override
    public Fragment createFragment(int position) {
        return data.get(position);//得到单个的实例对象
    }

    @Override
    public int getItemCount() {
        return data==null?0:data.size();//返回集合里实例数量
    }
}

三,在MainActivity里添加代码。

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
      //以上都是系统的,下面这个是新建一个fragment集合。
        List<BlankFragment> data=new ArrayList<>();
      //填充5个fragment到集合里
        for(int i=0;i<5;i++){
            BlankFragment blankFragment=BlankFragment.newInstance("fragment"+i,"page"+(5-i));
            data.add(blankFragment);
        }
      //得到activity_main里的viewpage2控件。
        ViewPager2 vp2=findViewById(R.id.viewpage);
      //创建一个适配类实例,并且把fragment实例传到适配类里。
        MyAdapter myAdapter=new MyAdapter(this,data);
      //给viewpage2这个控件,添加一个适配类实例。
        vp2.setAdapter(myAdapter);
    }
}

这样,一个最简单的viewpage+framgent就完成了!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/43026.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信