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
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1142
183.71 KB下载数642
644.84 KB下载数2755
相关文章
发现更多好内容猜你喜欢
AI推送时光机Android实现简单底部导航栏 Android仿微信滑动切换效果
后端开发2023-05-30
Android实现顶部导航栏可点击可滑动效果(仿微信仿豆瓣网)
后端开发2022-06-06
Android仿微信页面底部导航效果代码实现
后端开发2022-06-06
微信小程序实战之仿android fragment可滑动底部导航栏(4)
后端开发2022-06-06
Android仿微信底部实现Tab选项卡切换效果
后端开发2022-06-06
Android实现顶部导航菜单左右滑动效果
后端开发2022-06-06
Android实现微信首页左右滑动切换效果
后端开发2022-06-06
Android应用中怎实现一个顶部导航栏滑动效果
后端开发2023-05-31
微信小程序如何实现顶部导航栏滑动tab效果
后端开发2024-04-02
Android如何模仿实现微博详情页滑动固定顶部栏的效果
后端开发2023-05-30
咦!没有更多了?去看看其它编程学习网 内容吧