Kotlin - Попытка использовать существующий фрагмент в DialogFragment. В Recyclerview не отображается сообщение «Нет подключенного адаптера; пропуск макета» - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь повторно использовать существующий фрагмент и поместить его в 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? Если это так, я не могу понять как. Что мне не хватает?

Спасибо.

...