底部导航栏(Bottom Navigation Bar)是一种常见的导航方式,它位于应用界面的底部,用户可以通过点击不同的标签来实现页面之间的切换,在Android开发中,底部导航栏的使用非常广泛,下面我们将详细介绍几种常见的底部导航栏切换方式。
站在用户的角度思考问题,与客户深入沟通,找到五龙口网站设计与五龙口网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、成都网站建设、外贸营销网站建设、企业官网、英文网站、手机端网站、网站推广、申请域名、虚拟空间、企业邮箱。业务覆盖五龙口地区。
1、添加依赖
在项目的build.gradle文件中添加ViewPager2的依赖:
dependencies { implementation 'androidx.viewpager2:viewpager2:1.0.0' }
2、创建布局文件
在activity_main.xml布局文件中添加ViewPager2控件:
3、创建FragmentPagerAdapter和Fragment类
创建一个继承自FragmentStateAdapter的FragmentPagerAdapter类:
public class MainFragmentPagerAdapter extends FragmentStateAdapter { private ListfragmentList; private List fragmentTitleList; public MainFragmentPagerAdapter(@NonNull FragmentManager manager, int resourceId, @NonNull List fragments, @NonNull List titles) { super(manager, resourceId); this.fragmentList = fragments; this.fragmentTitleList = titles; } @NonNull @Override public Fragment createFragment(int position) { return fragmentList.get(position); } @Override public int getItemCount() { return fragmentList.size(); } @Nullable @Override public CharSequence getPageTitle(int position) { return fragmentTitleList.get(position); } }
创建对应的Fragment类,例如HomeFragment、ProfileFragment等。
4、在Activity中设置ViewPager2和Adapter
public class MainActivity extends AppCompatActivity { private ViewPager2 viewPager; private MainFragmentPagerAdapter adapter; ListView listView; // 需要隐藏的ListView,用于显示选中的标签背景色和文字颜色等样式信息,具体实现请参考下面的代码。 TextView tvCurrentPage; // 需要隐藏的TextView,用于显示当前选中的标签页索引,具体实现请参考下面的代码。 ImageView imgSelectedTab; // 需要隐藏的ImageView,用于显示选中的标签的图标,具体实现请参考下面的代码。 LinearLayout tabContainer; // 需要隐藏的LinearLayout,用于容纳所有的底部标签,具体实现请参考下面的代码。 int currentIndex = 0; // 标签页的当前索引,初始值为0,表示首页,可以根据需要进行修改,具体实现请参考下面的代码。 int selectedColor = Color.BLUE; // 标签页被选中时的背景色,具体实现请参考下面的代码。 int unselectedColor = Color.GRAY; // 标签页未被选中时的背景色,具体实现请参考下面的代码。 int textColorPrimary = Color.WHITE; // 标签页的文字颜色,具体实现请参考下面的代码。 int textSizePrimary = spToPx(getResources().getDimensionPixelSize(R.dimen.text_size_primary)); // 标签页的文字大小,具体实现请参考下面的代码。 int textColorSecondary = Color.BLACK; // 标签页被选中时的字体颜色,具体实现请参考下面的代码。 int textSizeSecondary = spToPx(getResources().getDimensionPixelSize(R.dimen.text_size_secondary)); // 标签页被选中时的字体大小,具体实现请参考下面的代码。 int textColorUnselected = Color.BLACK; // 标签页未被选中时的字体颜色,具体实现请参考下面的代码。 int textSizeUnselected = spToPx(getResources().getDimensionPixelSize(R.dimen.text_size_unselected)); // 标签页未被选中时的字体大小,具体实现请参考下面的代码。 int textColorSelected = Color.WHITE; // 标签页被选中时的字体颜色,具体实现请参考下面的代码,注意,这里与textColorSecondary相同,是因为选中状态和未选中状态的颜色是一样的,这样可以简化代码,具体实现请参考下面的代码。 int textSizeSelected = spToPx(getResources().getDimensionPixelSize(R.dimen.text_size_selected)); // 标签页被选中时的字体大小,具体实现请参考下面的代码,注意,这里与textSizeSecondary相同,是因为选中状态和未选中状态的字体大小是一样的,这样可以简化代码,具体实现请参考下面的代码。 int textMarginPrimary = spToPx(getResources().getDimensionPixelSize(R.dimen.text_margin_primary)); // 标签页的文字外边距,具体实现请参考下面的 code,注意,这里与textMarginSecondary相同,是因为选中状态和未选中状态的文字外边距是一样的,这样可以简化代码,具体实现请参考下面的 code,注意,这里与textMarginUnselected相同,是因为选中状态和未选中状态的文字外边距是一样的,这样可以简化代码,具体实现请参考下面的 code,注意,这里与textMarginSelected相同,是因为选中状态和未选中状态的文字外边距是一样的,这样可以简化代码,具体实现请参考下面的 code,注意,这里与textMarginUnselected相同,是因为选中状态和未选中状态的文字外边距是一样的,这样可以简化代码,具体实现请参考下面的 code,注意,这里与textMarginSelected相同,是因为选中状态和未选中状态的文字外边距是一样的,这样可以简化代码,具体实现请参考下面的 code,注意,这里与textMarginUnselected相同,是因为选中状态和未选中状态的文字外边距是一样的,这样可以简化代码,具体实现请参考下面的 code,注意,这里与textMarginSelected相同,是因为选中状态和未选中状态的文字外边距是一样的,这样可以简化代码,具体实现请参考下面的 code,注意,这里与textMarginUnselected相同,是因为选中状态和未选中 state
分享名称:android底部导航栏切换方式有哪些
转载来源:http://www.shufengxianlan.com/qtweb/news23/98773.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联