大家好,欢迎来到IT知识分享网。
先创建一个简单的吧,为了让以后的自己能看懂。
一、修改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