Я пытаюсь повторно использовать существующий фрагмент и поместить его в DialogFragment. Большая часть макета отображается правильно, за исключением RecyclerView. Вот код фрагмента, который отображается правильно.
class ExercisesFragment : Fragment() {
companion object {
fun newInstance(): ExercisesFragment {
return ExercisesFragment()
}
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_exercises, container, false)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
rc_exercises.apply {
layoutManager = LinearLayoutManager(activity)
adapter = ExerciseAdapter()
}
}
}
Я попытался использовать R.layout.fragment_exercises
здесь:
class AddExerciseDialogFragment : DialogFragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val view: View = inflater.inflate(R.layout.fragment_exercises, container, false)
//rc_exercises = view.findViewById(R.id.rc_exercises)
rc_exercises.apply {
layoutManager = LinearLayoutManager(activity)
adapter = ExerciseAdapter()
}
return view
}
}
Когда я запускаю приложение, отображается макет, за исключением RecyclerView. Logcat показывает сообщение:
E / RecyclerView: адаптер не подключен; Пропуск макета.
Когда я запускаю код в режиме отладки, я вижу, что rc_exercises
имеет значение null. Я пытался явно назначить rc_exercises
:
rc_exercises = view.findViewById(R.id.rc_exercises)
, но это вызывает ошибку "Val не может быть переназначен.
Должен ли я сделать rc_exercises
Var? Если это так, я не могу понять как. Что мне не хватает?
Спасибо.