У меня есть сложный RecyclerView.ViewHolder.Учитывая, что мое приложение предназначено для планшетов, в пользовательском интерфейсе больше места, что обеспечивает большую сложность.Когда пользователь нажимает кнопку внутри этого ViewHolder, я должен отобразить другой RecyclerView внутри ViewHolder.Учитывая, что вторичный RecyclerView необходим только тогда, когда пользователь нажимает кнопку, я не хочу загружать ее сразу, а разделяю на фрагмент, который будет загружен только тогда, когда пользователь нажимает кнопку внутри ViewHolder
В XML для моего ViewHolder я объявил Framelayout через:
<FrameLayout
android:id="@+id/fragmentContainer"
app:layout_constraintTop_toBottomOf="@id/counter"
android:layout_height="wrap_content"
android:layout_width="match_parent"/>
Я вызываю элементы, которые первичный RecyclerView отображает stack
.К сожалению, когда пользователь нажимает кнопку стека с id=5
, дополнительный фрагмент для вторичного RecyclerView добавляется в ViewHolder для id=1
, который отображается первым в первичном RecyclerView.
customizationButtonView.setOnClickListener {
val fragmentTransaction = activity.supportFragmentManager.beginTransaction()
if (customizationFragment==null){
stack?.let{ stack ->
fragmentContainer.tag = stack.id.toString()
val frag = StackCustomizationFragment(stack)
customizationFragment = frag
fragmentTransaction.replace(R.id.fragmentContainer, frag, stack.id.toString())
}
}
else{
customizationFragment?.let { fragmentTransaction.remove(it) }
customizationFragment = null
}
fragmentTransaction.commit()
}
Даже пометки, кажется, игнорируются.Есть ли другой способ сообщить FragmentManager о загрузке фрагмента в правильном R.id.fragmentContainer
?