Расширяемое окно повторного просмотра не показывает - PullRequest
0 голосов
/ 23 апреля 2020

Я использую recylcerview и хочу показать расширяемый элемент. Данные устанавливаются с помощью viewmodel, и я проверял много раз, не понимаю, в чем проблема с этим, но мой просмотрщик не показывает какой-либо элемент. Я отлаживаю код и адаптер работает. Я установил менеджер раскладки в xml. Может кто-нибудь, пожалуйста, помогите мне с этим.

InviteFragment : SearchSortFragment<PagedList<Group>, LayoutListBaseBinding>(),
    ContractInviteUser.View {
    @Inject
    lateinit var presenter: ContractInvite.Presenter

    private val adapter = InviteAdapter(this, this)

    private var userType = EnumUserType.GROUP

    private var invitedUsersGroup = ArrayList<Group>()

    override fun getLayoutResourceId() = R.layout.layout_list_base

    override val warningDrawableId: Int get() = R.drawable.ic_no_results_vouchers

    override fun bindViews(view: View?) {

        if (InviteUsersActivity.getInvitedUsersList(intent) != null)
            invitedUsersGroup = InviteUsersActivity.getInvitedUsersGroupList(intent)!!

        val currentType = InviteUsersActivity.getUserType(arguments)
        if (currentType != null) {
            userType = currentType
            //adapter.userType = currentType
        }
        recycler_view.adapter = adapter
        loadGroups()

    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        loadGroups()
    }

    override fun setupEventListeners() {
        //No listeners needed
    }

    //PRESENT

    override fun getPresenter(): IPresenter<*> = presenter

    override fun reloadDataset() = loadGroups()

    override fun groupsLoaded(groups: LiveData<PagedList<Group>>) {
        groups.observe(this, Observer {
            adapter.setDataSet(updateInvitedUsersStatus(it), Runnable {
                populateViews(it)
            })
        })
    }

    class InviteAdapter(
        private val listener: OnItemClickListener?,
        private val invitationClickListener: OnUserInvitationClickListener):ExpandablePagedRecyclerViewAdapter<Group, GroupsViewHolder, UsersViewHolder, RowGroupsBinding, RowUsersBinding>(DIFF) {
        companion object {

            val DIFF = object : DiffUtil.ItemCallback<Group>() {
                override fun areItemsTheSame(oldItem: Group, newItem: Group) =
                    areInviteItemsTheSame(oldItem, newItem)

                override fun areContentsTheSame(oldItem: Group, newItem: Group) =
                    areInviteContentsTheSame(oldItem, newItem)

            }

            fun areInviteItemsTheSame(oldItem: Group, newItem: Group) = oldItem.id == newItem.id

            fun areInviteContentsTheSame(oldItem: Group, newItem: Group) =
                oldItem.name == newItem.name

        }

        override fun getHeaderLayoutId() = R.layout.row_groups

        override fun getItemLayoutId() = R.layout.row_users


        override fun onCreateGroupViewHolder(binding: RowGroupsBinding): GroupViewHolder<RowGroupsBinding> {
            return GroupsViewHolder(binding)
        }

        override fun onCreateChildViewHolder(binding: RowUsersBinding): ChildViewHolder<RowUsersBinding> {
            return UsersViewHolder(binding)
        }

   }
fragment.xml
    <androidx.recyclerview.widget.RecyclerView
                   android:id="@+id/recycler_view"
                   android:layout_width="match_parent"
                   android:layout_height="match_parent"
                   android:clipToPadding="false"
                   android:paddingTop="@dimen/activity_half_margin"
                   android:paddingBottom="@dimen/activity_half_margin"
                   app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />


...