Android实现简单底部导航栏 Android仿微信滑动切换效果
短信预约 -IT技能 免费直播动态提醒
Android仿微信滑动切换最终实现效果:
大体思路:
主要使用两个自定义View配合实现; 底部图标加文字为一个自定义view,底部导航栏为一个载体,根据需要来添加底部图标;
2. 底部导航栏的设置方法类似于TabLayout的关联,View需要创建关联方法,用来关联VIewPager;
3. 通过关联方法获取ViewPager实例后,根据ViewPager页面数创建底部导航栏的图标按钮;
代码实现:
新建第一个自定义View, 图标 + 文字 的底部按钮;
public class TabView extends LinearLayout { BotBean mBean; private TextView title; private ImageView iconImage; public TabView(Context context, BotBean bean) { super(context); this.mBean = bean; initView(); } public void initView() { setOrientation(VERTICAL); setGravity(Gravity.CENTER); //添加小图标 iconImage = new ImageView(getContext()); LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT , ViewGroup.LayoutParams.WRAP_CONTENT); iconImage.setLayoutParams(layoutParams); iconImage.setImageResource(mBean.getUncheckedId()); Drawable drawable = getContext().getResources().getDrawable(mBean.getUncheckedId()); Drawable wrapDrawable = DrawableCompat.wrap(drawable); DrawableCompat.setTintList(wrapDrawable, ColorStateList.valueOf(Color.BLACK)); iconImage.setImageDrawable(wrapDrawable); addView(iconImage); //标题 title = new TextView(getContext()); LinearLayout.LayoutParams titleParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); title.setLayoutParams(titleParams); title.setText(mBean.getContent()); addView(title); } //判断选择状态,改变图标 //供外部调用 public void setSelected(boolean isSelected) { if (mBean == null) { return; } if (isSelected) { if (iconImage != null) { //使用颜色过滤器,改变选中时的颜色 Drawable drawable = getContext().getResources().getDrawable(mBean.getUncheckedId()); Drawable wrapDrawable = DrawableCompat.wrap(drawable); DrawableCompat.setTintList(wrapDrawable, ColorStateList.valueOf(Color.GREEN)); iconImage.setImageDrawable(wrapDrawable); title.setTextColor(Color.GREEN); } } else { if (title != null) { // iconImage.setImageResource(mBean.getUncheckedId()); Drawable drawable = getContext().getResources().getDrawable(mBean.getUncheckedId()); Drawable wrapDrawable = DrawableCompat.wrap(drawable); DrawableCompat.setTintList(wrapDrawable, ColorStateList.valueOf(Color.BLACK)); iconImage.setImageDrawable(wrapDrawable); title.setTextColor(Color.GRAY); } } } }
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
Android实现简单底部导航栏 Android仿微信滑动切换效果
下载Word文档到电脑,方便收藏和打印~
下载Word文档
猜你喜欢
Android实现简单底部导航栏 Android仿微信滑动切换效果
Android仿微信滑动切换最终实现效果:大体思路:1. 主要使用两个自定义View配合实现; 底部图标加文字为一个自定义view,底部导航栏为一个载体,根据需要来添加底部图标;2. 底部导航栏的设置方法类似于TabLayout的关联,Vi
2023-05-30
Android实现顶部导航栏可点击可滑动效果(仿微信仿豆瓣网)
使用ViewPager,PagerSlidingTabStrip,SwipeRefreshLayout打造一款可以点击可以侧滑的顶部导航栏。先简单介绍一下所用的两个个开源库。
PagerSlidingTabStrip
Github地址
用
2022-06-06
Android仿微信页面底部导航效果代码实现
大家在参考本地代码的时候要根据需要适当的修改,里面有冗余代码小编没有删除。好了,废话不多说了,一切让代码说话吧!
关键代码如下所示:
.java里面的主要代码public class MainActivity extends BaseAct
2022-06-06
微信小程序实战之仿android fragment可滑动底部导航栏(4)
底部3-5个选项的底部导航栏,目前在移动端上是主流布局之一,因此腾讯官方特地做了,可以通过设置,就可以做出了一个底部的导航栏。
相关教程:微信小程序教程系列之设置标题栏和导航栏(7)
但是通过设置的这个底部的导航栏,功能上比较固定,它必须要
2022-06-06
Android仿微信底部实现Tab选项卡切换效果
在网上看了比较多的关于Tab的教程,发现都很杂乱。比较多的用法是用TitlePagerTabStrip和ViewPaper。不过TitlePagerTabStrip有个很大的缺陷,Tab里面的内容刚进去是没有的,要滑一次才能加载出来。而且滑
2022-06-06
Android实现顶部导航菜单左右滑动效果
本文给大家介绍在Android中如何实现顶部导航菜单左右滑动效果,具体内容如下
第一种解决方案:
实现原理是使用android-support-v4.jar包中ViewPager控件,在ViewPager控件中设置流布局,再在流布局中设置
2022-06-06
Android实现微信首页左右滑动切换效果
大家看到微信首页切换效果有没有觉得很炫,滑动切换,点击底部bar瞬间切换,滑动切换渐变效果,线上效果图:之前也在博客上看到别人的实现,再次基础上,我做了些优化。首先说下实现原理,大神略过,o(╯□╰)o
页面上看到的三个页面是三个Fragm
2022-06-06
Android应用中怎实现一个顶部导航栏滑动效果
本篇文章给大家分享的是有关Android应用中怎实现一个顶部导航栏滑动效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.向app Module中的build.gradle中
2023-05-31
2024-04-02
Android如何模仿实现微博详情页滑动固定顶部栏的效果
这篇文章主要介绍了Android如何模仿实现微博详情页滑动固定顶部栏的效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先来看下我们今天要实现的效果:滑动固定顶部栏效果图这段
2023-05-30