2017-09-05 112 views
0

将cardview添加到recyclerview项目时出现此错误。有人能告诉我我做错了什么,以及在哪里删除父视图?还有人可以解释为什么我得到这个错误?谢谢。java.lang.IllegalStateException:指定的子项已经有父项。您必须先调用孩子父母的removeView()2

<layout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto"> 

    <data> 

     <import type="android.view.View"/> 

     <variable 
      name="chatsViewModel" 
      type="com.sukshi.sukshichat.viewmodel.ChatsViewModel"/> 
    </data> 

    <android.support.v7.widget.CardView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
    <RelativeLayout 
     android:id="@+id/ln_item_row" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:background="#FFFFFF" 
     android:onClick="@{chatsViewModel::onItemClick}" 
     android:orientation="horizontal" 
     android:padding="16dp" 
     android:visibility="@{chatsViewModel.sender ? View.GONE : View.VISIBLE}"> 

     <de.hdodenhof.circleimageview.CircleImageView 
      android:id="@+id/iv_user_photo" 
      style="@style/AppTheme.CircleImgList" 
      app:civ_border_color="@color/circle_iv_border" 
      app:civ_border_width="1dp" 
      app:photoUrl="@{chatsViewModel.photoUrl}" 
      tools:src="@drawable/ic_person"/> 


    </RelativeLayout> 
    </android.support.v7.widget.CardView> 
</layout> 

`

而且我这是怎么夸大我的布局

mAdapter = new FirebaseRecyclerAdapter<User, ChatsItemHolder>(User.class, R.layout.adapter_item_chats, 
      ChatsItemHolder.class, refUsers) { 
     @Override 
     public ChatsItemHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
      AdapterItemChatsBinding adapterItemChatsBinding = DataBindingUtil.inflate(LayoutInflater 
        .from(parent.getContext()), viewType, parent, false); 
      return new ChatsItemHolder(adapterItemChatsBinding); 
     } 

这里是我的ChatItemHolder

public static class ChatsItemHolder extends RecyclerView.ViewHolder { 
      private AdapterItemChatsBinding mAdapterItemChatsBinding; 

      public ChatsItemHolder(AdapterItemChatsBinding adapterItemChatsBinding) { 
       super(adapterItemChatsBinding.lnItemRow); 
       this.mAdapterItemChatsBinding = adapterItemChatsBinding; 
      } 

      public void bindUser(User user, ChatsViewModelContract contract) { 
       if (mAdapterItemChatsBinding.getChatsViewModel() == null) { 
        mAdapterItemChatsBinding.setChatsViewModel(new ChatsViewModel(user, mEncodedMail, 
          contract)); 
       } else { 
        mAdapterItemChatsBinding.getChatsViewModel().setUser(user); 
       } 
      } 
     } 
+0

一个家长布局添加到CardView –

+0

同样的问题再次 – stackover65

+0

尝试最后PARAM更改为true。 – tebitoq

回答

0

你可以试试这个,

更改ChatsItemHolder构造uctor到

public ChatsItemHolder(AdapterItemChatsBinding adapterItemChatsBinding) { 
    super(adapterItemChatsBinding); 
    this.mAdapterItemChatsBinding = adapterItemChatsBinding; 
} 
相关问题