Можно ли использовать тег <fragment>внутри макета ViewHolder RecyclerView? - PullRequest
0 голосов
/ 27 мая 2019

Может возникнуть вопрос, может ли макет RecyclerView ViewHolder иметь тег <fragment>, например:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <fragment 
        android:name="com.some.FragmentOne"
        android:id="@+id/somefragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</FrameLayout>

1 Ответ

1 голос
/ 27 мая 2019

Это не очень хорошая идея.

вам лучше использовать ScrollView вокруг LinearLayout , в который загружаются фрагменты.Фрагменты будут загружены немного раньше, чем с RecyclerView , но вам не придется бороться со всей инфраструктурой переработки, которой вы не пользуетесь.

Фрагменты собираютсязагружаться друг на друга, потому что когда вы фиксируете транзакцию, вы фактически не меняете представление.Вы говорите менеджеру фрагментов: «Эй, когда у тебя будет шанс, ты сможешь подключить этот фрагмент к этому ViewGroup ID?»Диспетчер фрагментов работает с первым экземпляром этого идентификатора представления, который он находит, и поэтому они загружаются друг на друга.

Вы можете обойти это, имея разные идентификаторы для разных позиций,но я бы не рекомендовал это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...