这几天在写一个android版的音乐播放器,在开发过程中遇到了一些小问题 小bug,最后经过一番调试与查找

终于发现问题所在。现在将开发中的问题与解决方法分享给大家...

一,音乐播放器的界面我采用的是ViewPager+Fragment的方式来实现。

二,底部有四个Tab按钮,采用的是xml的组合模板+自定义的view布局方式来实现,四个Tab按钮名分别为

音乐​ 播放 专辑 设置

图片:​

三,开发过程中遇到的Bug :

1,当从设置按钮界面切换到播放按钮界面时播放界面上的播放图标按钮又变成默认的暂停状态。(猜想:可能是fragment又重新绘制了界面

系统自动调用里onCreateView()方法)

2,我在设置按钮界面的​onCreateView()方法里设置了一个Toast通知,当我点击专辑按钮时,弹出里Toast通知里的消息(专辑按钮里没有添加任何Toast)。(猜想:可能是一个Fragment的重绘

引起了另一个fragment的重绘)

三,解决方法

1,根据上述的猜想,经过调试验证,猜想正确。所以你可以在fragment里设置一个成员属性的标记值,在onCreateView根据这个标记值

作一个 if 语句的条件进行判断,将fragment所加载的xml布局代码View view =

inflater.inflate(resource, root,

attachToRoot);放在此if语句里,确保只执行一次(即修改标记值),即可解决fragment的多次加载xml布局文件 和

界面刷新问题。

,2,将fragment作为ViewPager的适配器资源时。当用户滑动界面进行页面切换时,可能出现

fragment的重绘问题,fragment的view有缓存则界面无需重绘,切换一个fragmenet的同时也可能会引起另一个fragment的重新绘制(onCreatView())​

当fragment作为(加入到)ViewPager的资源显示页时​,其已经缓存在viewpager中,只不过在每次页面滑动时又会走onCreatView()方法使数据改变,为保证数据不变应添加一个标记

保证重绘界面(onCreatView()里的方法)只执行一次即可。

结语:由于本文是博主的亲身经历,技术水平有限。文中若有不对或各位有不同观点的,大家可以评论指正,此篇博文希望对大家有所帮助..........​

android音乐播放器底部,android音乐播放器开发中所遇到的bug及解决方法相关推荐

  1. 〖Android〗从Android Studio转为Eclipse开发项目运行程序闪退的解决方法

    很久没有撸Android App开发了- 最近把一个月前通过反编译.二次修改的Android SSHD项目进行简单修改一下: 突然发现迁移项目时,报了一个错误,同时还出现了闪退情况: 04-29 20 ...

  2. 浅谈Android Fragment嵌套使用存在的一些BUG以及解决方法

    自从Android3.0引入了Fragment之后,使用Activity去嵌套一些Fragment的做法也变得更加流行,这确实是Fragment带来的一些优点,比如说:Fragment可以使你能够将a ...

  3. android studio 运行闪退,ubuntu上在androidstudio中启动emulator闪退的解决方法

    阅读目录(Content) 平台 现象 解决 一.查看模拟器的信息 二.命令行运行模拟器 平台 Ubuntu14.04 64 现象 在AndrodStudio中点击模拟器的启动按钮后,模拟器界面弹出后 ...

  4. 虚幻引擎UE4.25版本使用Android打包出错提示:ERROR: cmd.exe failed with args /c 和 :app:assembleDebug的解决方法

    虚幻引擎 UE4.25版本使用Android打包出错提示:ERROR: cmd.exe failed with args /c 和 :app:assembleDebug的解决方法: 在虚幻引擎的jdk ...

  5. 计算机上没有足够的可用内存无法完成扫描,windows照片查看器无法显示此图片,因为计算机上的可用内存可能不足解决方法...

    win7查看照片显示内存不足怎么办呢?有用户使用win7照片查看器打开图片时提示:windows照片查看器无法显示此图片,因为计算机上的可用内存可能不足.但是电脑硬件配置足够高,内存也不小,那么遇到这 ...

  6. android列表滑到底部,Android中判断listview是否滑动到顶部和底部的实现方法

    今天实现listview的下拉刷新和上拉加载的时候,遇到了一个问题,*就是说需要根据listview中滑动的位置来进行下拉刷新和上拉加载.* 具体点,只有当我的listview滑动到最顶部的时候,这时 ...

  7. android onscrolllistener判断到底部,android中RecycleView添加下滑到底部的监听示例

    我们的日常开发中经常用到下拉刷新,而网上评价最好的开源下拉刷新组件当然还是android-Ultra-Pull-To-Refresh此组件可以给任何的控件添加下拉刷新功能.当然也包括recyclevi ...

  8. Android学习笔记--GMS认证中常见的fail项及解决方法

    ############################################################# cts测试的一些命令:     sudo chmod a+x copy_me ...

  9. as3 android白屏,Android 8.0中一些坑以及对应的解决方法

    前言 虽然 Android 9.0 都已经面世了,本篇文章写的有点迟了. 但是迟到好过不到,因此基于此这边还是记录一下项目中遇到的 Android 8.0 的坑及对应解决方法. 每次系统升级,虽然系统 ...

最新文章

  1. centos 7 卸载 mariadb 的正确命令
  2. WSS(MOSS)如何修改Rich文本编辑器的宽度
  3. 腾讯上海某实验室SQL面试题——查询最后任职信息
  4. linux superblock 时间,Linux命令(八)
  5. 怎么用git将本地代码上传到远程服务器_git之如何把本地文件上传到远程仓库的指定位置...
  6. sublime Text3安装及配置与解决安装插件失败
  7. 跟我极速尝鲜 Spring Boot 2.3
  8. python 图像分析 边框_Python 去除图片纯色边框(qbit)
  9. Membership三步曲之入门篇 - Membership基础示例
  10. TwinCAT3 EL6070-1648授权模块使用
  11. Word的”交叉引用“和”插入题注“快捷键设置
  12. Java实现一个打飞机的小游戏【附源码】
  13. MDCC2013会议笔记
  14. Hadoop3.3.2+hbase2.4.10org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not runn
  15. 如何利用 Github 搭建自己的免费图床?
  16. 如何在Windows中使用截图工具进行屏幕截图
  17. IDEA显示树状目录结构
  18. Lua程序设计 | 模块和包、泛型迭代器和for、元表和元方法
  19. BZOJ 2125 最短路 仙人掌最短路
  20. 亲身经历:一次sql缺少where条件的惨案…

热门文章

  1. fetch发送请求:Failed to fetch
  2. Flex and PHP
  3. 深度报道:对日软件外包六大战术(转)
  4. iPhone12Pro 什么时候上市 iPhone12Pro外观尺寸爆光
  5. 德国专利申请流程详解
  6. Pear Admin Layui - 基于 Layui 打造的免费开源、快速、高效的中后台管理系统前端框架
  7. burpsuit--设置代理(抓取APP请求)
  8. 一个IT从业人员的职业道德与素养
  9. VScode 插件 Markdown Preview Enhanced 给标题下划线
  10. 矩阵分析与应用(17)