如何在带展开收起逻辑的可扩展浮动按钮中实现Activity跳转
解决可扩展浮动按钮(Expendable FAB)跳转Activity的问题
问题核心
你之前错误地把跳转逻辑放在了主FAB(addFAB)的点击事件中,还将Intent的目标Activity写成了控件类FloatingActionButton::class.java(这不是你要跳转的业务Activity)。正确的做法是让主FAB只负责展开/收起子按钮,把跳转逻辑放到对应的子浮动按钮点击事件里。
修改后的完整代码
addFAB.setOnClickListener{ if (!fabVisible){ uploadfolder.show() uploadfile.show() createFolder.show() uploadfolder.visibility = View.VISIBLE uploadfile.visibility = View.VISIBLE createFolder.visibility = View.VISIBLE addFAB.setImageDrawable(resources.getDrawable(R.drawable.ic_close)) fabVisible = true }else { uploadfolder.hide() uploadfile.hide() createFolder.hide() uploadfolder.visibility = View.GONE uploadfile.visibility = View.GONE createFolder.visibility = View.GONE addFAB.setImageDrawable(resources.getDrawable(R.drawable.add)) fabVisible = false } } // 上传文件夹按钮:跳转至对应Activity uploadfolder.setOnClickListener{ // 替换成你实际要跳转的Activity类 val intent = Intent(this@MainActivity, UploadFolderActivity::class.java) startActivity(intent) } // 上传文件按钮:跳转至对应Activity uploadfile.setOnClickListener{ val intent = Intent(this@MainActivity, UploadFileActivity::class.java) startActivity(intent) } // 创建文件夹按钮:跳转至对应Activity createFolder.setOnClickListener { val intent = Intent(this@MainActivity, CreateFolderActivity::class.java) startActivity(intent) }
关键注意事项
- 目标Activity类要准确:必须传入你自己定义的业务Activity(比如
UploadFileActivity),不能是控件类FloatingActionButton。 - 上下文要正确:使用
this@MainActivity确保获取当前Activity的上下文,避免因上下文错误导致跳转失败。 - 逻辑职责分离:主FAB只处理展开/收起逻辑,子按钮各自处理对应的跳转或业务操作,避免代码混乱。
内容的提问来源于stack exchange,提问作者En0309O19kl93it
相关产品推荐
相关产品推荐

