首页 > 电脑专区 > 电脑教程 >

Fragment+FragmentTabHost实现仿QQ底部菜单栏

来源:互联网 2023-02-21 16:23:55 285

QQ人群里使用最多的手机APP之一,它的设计、排版都深受大众的喜爱,那么你想不想知道QQ的底部导航是如何实现的呢?其实很简单,通过Fragment FragmentTabHost我们就可以轻松实现类似QQ底部导航的效果。i6r办公区 - 实用经验教程分享!

Fragment FragmentTabHost实现仿QQ底部菜单栏i6r办公区 - 实用经验教程分享!

工具/原料

  • Android开发工具:Android Studio或Eclipse
  • 虚拟机或测试手机

一、设计布局文件

  • 1

    看到QQ底部导航只要有三栏,第一栏是“消息”,第二栏“联系人”,第三栏“动态”,可以自由的在这三栏导航中来回的切换,然后在上面展示不同的内容。这三栏中的一个特点是:文字的上面是一张图标,所以在制作布局的时候我们可以只需要一个模板就可以了,我们将这个模板命名为qq_nav_item.xml,具体代码如下:i6r办公区 - 实用经验教程分享!

    Fragment FragmentTabHost实现仿QQ底部菜单栏i6r办公区 - 实用经验教程分享!

  • 2

    我们看到QQ在切换到当前状态的时候,图标和文字颜色都发生了改变,那是在控件中添加了颜色切换器(命名为change_color_text.xml)和图标切换器(命名为one_change_icon_image.xml,two_change_icon_image.xml,three_change_icon_image.xml),因为图标有三种,颜色只有一种变化,所有需要声明三个图标切换器,代码如下:i6r办公区 - 实用经验教程分享!

    Fragment FragmentTabHost实现仿QQ底部菜单栏i6r办公区 - 实用经验教程分享!

  • 3

    我们可以制作QQ主页面了,命名为qq_main_layout.xml,在这个布局中使用FragmentTabHost,实现导航内容之间的切换,FlameLayout里面用于显示导航下的内容,比如消息导航中,FlameLayout里面显示当前正在聊天的窗口,代码如下:i6r办公区 - 实用经验教程分享!

    Fragment FragmentTabHost实现仿QQ底部菜单栏i6r办公区 - 实用经验教程分享!

  • 3相关内容未经授权抓取自百度经验
  • 二、创建Fragment和Activity

  • 1

    创建三个Fragment页面,分别在导航切换到“消息”、“联系人”、“动态”时展示对应的内容,分别命名MessageFragment.java,ContactFragment.java和DynamicFragment.java,在这里我们主要显示QQ导航制作,关于内容页面我将在下一篇文章中介绍。这里我们就简单在内容中的Fragment输出有些提示文字,使用统一的布局:fragment_content.xml,代码如下:i6r办公区 - 实用经验教程分享!

    Fragment FragmentTabHost实现仿QQ底部菜单栏i6r办公区 - 实用经验教程分享!

    Fragment FragmentTabHost实现仿QQ底部菜单栏i6r办公区 - 实用经验教程分享!

    Fragment FragmentTabHost实现仿QQ底部菜单栏i6r办公区 - 实用经验教程分享!

    Fragment FragmentTabHost实现仿QQ底部菜单栏i6r办公区 - 实用经验教程分享!

  • 2

    创建Activity类,命名为QQMainActivity.java解析布局文件,同时将MessageFragment,ContactFragment和DynamicFragment嵌入到导航中,展示指定QQ导航下的内容,代码如下:i6r办公区 - 实用经验教程分享!

    Fragment FragmentTabHost实现仿QQ底部菜单栏i6r办公区 - 实用经验教程分享!

  • 3

    QQ导航的图标和颜色在不同的版本或不同的主题背景下,差别还是比较大的,运行项目的时候,实现类似的导航效果,想要完成一样的效果,更换一下图标和背景色即可i6r办公区 - 实用经验教程分享!

    Fragment FragmentTabHost实现仿QQ底部菜单栏i6r办公区 - 实用经验教程分享!

  • 注意事项

    • 设计布局文件,修改选择器,可以改变导航选中或未选中时文字、图标效果
    • 一个导航对应一个Fragment,在Fragment中实现各种特殊页面效果

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!i6r办公区 - 实用经验教程分享!


    标签: QQ实现

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码