Я начал изучать Kotlin для Android и создал тестовый проект с 2 фрагментами. Первый фрагмент работает хорошо, и все элементы управления, т.е. текстовые представления кнопок, доступны, но во втором фрагменте ни один из элементов управления не доступен и выдает ошибку неразрешенной ссылки. Вот мой код фрагмента.
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import kotlinx.android.synthetic.main.frag_registration.*
class FragRegistration : Fragment() {
private var rootView: View? = null
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
rootView = inflater.inflate(R.layout.frag_registration, container, false)
initViews()
initEvents()
return rootView
}
private fun initViews() {
rootView.btnRegister.setOnClickListener { // error on this line
Log.d(TAG,"Button click event")
}
}
private fun initEvents() {
}
}
Это мой файл макета
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorWhite"
tools:context=".FragRegistration">
<ImageView
android:id="@+id/companyLogo"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@mipmap/ic_launcher"
app:layout_constraintEnd_toStartOf="@+id/guideline2"
app:layout_constraintStart_toStartOf="@+id/guideline"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/etMobileNumber"
android:layout_width="0dp"
android:layout_height="@dimen/_60sdp"
android:background="@drawable/line_round_background"
android:gravity="center"
android:hint="@string/enter_mobile_num"
android:inputType="number"
android:maxLength="11"
android:maxLines="1"
android:paddingLeft="@dimen/_8sdp"
android:paddingRight="@dimen/_8sdp"
android:textColorHint="@color/colorPrimary"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/guideline2"
app:layout_constraintStart_toStartOf="@+id/guideline"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/btnRegister"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:background="?attr/selectableItemBackground"
app:layout_constraintBottom_toBottomOf="@+id/etMobileNumber"
app:layout_constraintEnd_toEndOf="@+id/etMobileNumber"
app:layout_constraintTop_toTopOf="@+id/etMobileNumber"
app:srcCompat="@drawable/ic_pink_right_arrow" />
<TextView
android:id="@+id/textView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_5sdp"
android:gravity="center"
android:text="@string/pin_via_sms"
app:layout_constraintEnd_toEndOf="@+id/etMobileNumber"
app:layout_constraintStart_toStartOf="@+id/etMobileNumber"
app:layout_constraintTop_toBottomOf="@+id/etMobileNumber" />
<androidx.appcompat.widget.AppCompatButton
android:layout_width="wrap_content"
android:layout_height="@dimen/_25sdp"
android:layout_marginBottom="@dimen/_10sdp"
android:background="@drawable/line_round_background"
android:gravity="center"
android:paddingLeft="@dimen/_10sdp"
android:paddingRight="@dimen/_10sdp"
android:text="@string/not_a_company_user"
android:textColor="@color/darkGrey"
app:layout_constraintBottom_toTopOf="@+id/textView3"
app:layout_constraintEnd_toStartOf="@+id/guideline2"
app:layout_constraintStart_toStartOf="@+id/guideline" />
<TextView
android:id="@+id/textView3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/_8sdp"
android:gravity="center"
android:text="@string/mbb_number_reg"
android:textColor="@color/colorAccent"
app:layout_constraintBottom_toTopOf="@+id/tvCon"
app:layout_constraintEnd_toStartOf="@+id/guideline2"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="@+id/guideline" />
<TextView
android:id="@+id/tvCon"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/_8sdp"
android:gravity="center"
android:text="@string/terms_conditions"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/guideline2"
app:layout_constraintStart_toStartOf="@+id/guideline" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_begin="@dimen/_12sdp" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_end="@dimen/_12sdp" />
</androidx.constraintlayout.widget.ConstraintLayout>
Я уже добавил расширения kotlin в build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
vectorDrawables.useSupportLibrary = true
applicationId "com.app.dev"
minSdkVersion 16
targetSdkVersion 29
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
--
--
--
}
Это полная ошибка