Fragment类无法访问Kotlin中布局文件内的组件

时间:2020-04-01 15:58:57

标签: android kotlin

为什么我不能在Kotlin中访问布局文件中的组件?我有这个代码

fragment_first_image

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".FirstImageFragment">

    <ImageView
        android:id="@+id/firstFragmentImageView"
        android:scaleType="center"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <ProgressBar
        android:id="@+id/firstFragmentProgressbar"
        android:visibility="invisible"
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</FrameLayout>

和Kotlin课

FirstImageFragment

import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup

class FirstImageFragment : Fragment() {
    private val imageUrl = "https://static.pexels.com/photos/596940/pexels-photo-596940.jpeg"

    private fun loadImageUsingGlide() {
         THIS IS THE ERROR ====>  firstFragmentProgressbar.visibility = VISIBLE 
    }

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                              savedInstanceState: Bundle?): View? {

        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_first_image, container, false)
    }

    companion object {
        fun newInstance() = FirstImageFragment()
    }
}

我无法访问UI组件的ID。我接下来可以尝试什么?

1 个答案:

答案 0 :(得分:1)

import kotlinx.android.synthetic.main.fragment_first_image.*

在片段中添加以上导入。

这将起作用,但是数据绑定/视图绑定比上述方法要好得多。