手机直播源码,使用ViewPager2实现页面滑动切换
手机直播源码,使用ViewPager2实现页面滑动切换
1.引言
在很多应用中,我们经常会看到多个页面之间滑动切换的场景,ViewPager2是ViewPager的升级版,本文将简要介绍如何使用ViewPager2、FragmentStateAdapter和Fragment来实现页面之间的滑动切换。
2.实现页面滑动切换
2.1 引入ViewPager2库
要使用ViewPager2,需要引入ViewPager2库,引入方法如下:
1 | <br>implementation "androidx.viewpager2:viewpager2:1.0.0" <br> |
2.2 使用ViewPager2
在布局中使用ViewPager2,示例如下:
1 | <br><androidx.viewpager2.widget.ViewPager2<br> android:id= "@+id/viewPager2" <br> android:layout_width= "match_parent" <br> android:layout_height= "match_parent" /> <br> |
2.3 构建Fragment
本Fragment只为简单演示使用,其布局如下:
1 | <br><LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android" <br> xmlns:tools= "http://schemas.android.com/tools" <br> android:layout_width= "match_parent" <br> android:layout_height= "match_parent" <br> android:gravity= "center" <br> android:orientation= "vertical" ><br> <TextView<br> android:id= "@+id/tv_content" <br> android:layout_width= "wrap_content" <br> android:layout_height= "wrap_content" <br> android:textSize= "18sp" <br> android:textColor= "@color/black" /><br></LinearLayout> <br> |
ContentFragment类的实现如下:
1 | <br> public class ContentFragment extends Fragment {<br> private String content;<br> public ContentFragment(String content) {<br> this.content = content;<br> }<br> private TextView tv_content;<br> @Nullable<br> @Override<br> public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {<br> View view = inflater.inflate(R.layout.fragment_content, container, false);<br> tv_content = view.findViewById(R.id.tv_content);<br> tv_content.setText(content);<br> return view;<br> }<br> public void setContent(String content) {<br> this.content = content;<br> tv_content.setText(content);<br> }<br>} |
2.4 继承FragmentStateAdapter
创建自定义的类ContentPagerAdapter,让它继承FragmentStateAdapter,并实现createFragment(int position)和getItemCount()方法,示例如下:
1 | <br> public class ContentPagerAdapter extends FragmentStateAdapter {<br> private List<ContentFragment> datas;<br> public ContentPagerAdapter(@NonNull FragmentActivity fragmentActivity,List<ContentFragment> datas) {<br> super(fragmentActivity);<br> this.datas = datas;<br> }<br> @NonNull<br> @Override<br> public Fragment createFragment(int position) {<br> return datas.get(position);<br> }<br> @Override<br> public int getItemCount() {<br> return datas.size();<br> }<br>} |
2.5 将ViewPager2与适配器绑定
将ViewPager2与适配器绑定后,便可实现页面滑动切换,示例如下:
1 | <br>datas = new ArrayList<>();<br>datas.add( new ContentFragment( "页面1" ));<br>datas.add( new ContentFragment( "页面2" ));<br>datas.add( new ContentFragment( "页面3" ));<br>datas.add( new ContentFragment( "页面4" ));<br>datas.add( new ContentFragment( "页面5" ));<br>contentPagerAdapter = new ContentPagerAdapter(this, datas);<br>viewPager2.setAdapter(contentPagerAdapter); |
2.6 垂直方向滑动切换
ViewPager2不仅支持水平方向的滑动,还支持垂直方向的滑动,实现垂直滑动也是相当简单,在布局文件中添加android:orientation="vertical"属性即可,如下所示:
1 | <br><androidx.viewpager2.widget.ViewPager2<br> android:id= "@+id/viewPager2" <br> android:layout_width= "match_parent" <br> android:layout_height= "match_parent" <br> android:orientation= "vertical" /> <br> |
或者在代码中调用ViewPager2的setOrientation(ViewPager2.ORIENTATION_VERTICAL)方法也可以让ViewPager2实现垂直方向的滑动。
以上就是 手机直播源码,使用ViewPager2实现页面滑动切换,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现