Kotlin Fragment 按钮跳转报错解决:Unresolved reference ‘floatingActionButton‘

报错场景

在使用Kotlin开发时,为了实现从listfragment通过一个按钮跳转到addfragment时,按照教程

复制代码
class ListFragment : Fragment() {

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        // Inflate the layout for this fragment
        val view = inflater.inflate(R.layout.fragment_list, container, false)

   
        view.floatingActionButton.setOnClickListener{
            findNavController().navigate(R.id.action_listFragment_to_addFragment)
        }
        return view
    }

然而报错,> Task :app:compileDebugKotlin e: file:///D:/android_projects/ToDoApp/app/src/main/java/com/example/todoapp/ListFragment.kt:20:14 Unresolved reference 'floatingActionButton'. > Task :app:compileDebugKotlin FAILED。

报错原因:在 Fragment 中直接通过 view.floatingActionButton 获取控件失败 ------Kotlin 不会自动为布局中的控件生成 "直接引用"(需配合 viewBindingfindViewById 显式绑定),所以编译器找不到 floatingActionButton 这个变量。

解决方法:

使用 findViewById(无需配置,快速临时解决)

复制代码
class ListFragment : Fragment() {

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        // Inflate the layout for this fragment
        val view = inflater.inflate(R.layout.fragment_list, container, false)

        val fab = view.findViewById<FloatingActionButton>(R.id.floatingActionButton)
        fab.setOnClickListener {
            findNavController().navigate(R.id.action_listFragment_to_addFragment)
        }
        return view
    }
}

根据提示

复制代码
import com.google.android.material.floatingactionbutton.FloatingActionButton

完成,此时点击按钮实现fragment跳转。

相关推荐
困死,根本不会3 小时前
Kivy+Buildozer 打包 APK 踩坑:python-for-android 克隆失败
开发语言·php·kivy
咸鱼2.05 小时前
【java入门到放弃】跨域
java·开发语言
野生的码农5 小时前
放过自己,降低预期,及时行乐
android·ai编程
skiy5 小时前
java与mysql连接 使用mysql-connector-java连接msql
java·开发语言·mysql
一念春风5 小时前
智能文字识别工具(AI)
开发语言·c#·wpf
huwuhang5 小时前
索尼PS3游戏合集【中文游戏】8.12T 1430个游戏+PS3模拟器
android·游戏·智能手机·游戏机·电视
桦06 小时前
【C++复习】:继承
开发语言·c++
何仙鸟6 小时前
GarmageSet下载和处理
java·开发语言
wefly20176 小时前
免安装!m3u8live.cn在线 M3U8 播放器,小白也能快速上手
java·开发语言·python·json·php·m3u8·m3u8在线转换
薛先生_0997 小时前
js学习语法第一天
开发语言·javascript·学习