Я пробую эту библиотеку qeReader в моем приложении.У меня есть активность, где я встраиваю SurfaceFragment.Вот макет frag_surface :
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<SurfaceView
android:id="@+id/surface_view"
android:layout_width="300dp"
android:layout_height="300dp"/>
</LinearLayout>
и мой SurfaceFragment:
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_surface, container, false)
}
, и в своей деятельности я звоню:
val fragmentManager = this.supportFragmentManager
val fragmentTransaction = fragmentManager.beginTransaction()
fragmentTransaction.replace(R.id.framelayout_qr, SurfaceFragment())
fragmentTransaction.commit()
ив макете моей деятельности:
<FrameLayout
android:id="@+id/framelayout_qr"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
/>
Позже мне нужно получить доступ из своей деятельности к Surface_view, но это дает сбой:
Причина: java.lang.IllegalStateException: surface_view mustnot be null
Q1: Все мои R помечены красным и помечены как Неразрешенная ссылка: R , хотя они импортированы в коде.Но я могу запустить приложение, пока не произойдет сбой.Почему он помечен красным, но явно импортирован?
Q2: Я читал, что мне больше не нужны эти функции findViewById () в Kotlin?Почему surface_view является нулевым из действия, хотя оно заменено в FragmentTransaction?