The specified child already has a parent. You must call removeView() on the child's parent first.
public class CommunityFragment extends android.support.v4.app.Fragment {
private RecyclerView mRecyclerView;
private CommunityAdapter mCommunityAdapter;
private List<AVObject> mList = new ArrayList<>();
View view;
private FrameLayout frameLayout;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle saveInstanceState){
view= inflater.inflate(R.layout.community_layout,container,false);
Log.d("TAG", "onCreateView: 1");
return view;
}
public void onViewCreated(View view, @Nullable Bundle savedInstanceState){
Log.d("TAG", "onCreateView: 2");
FloatingActionButton fab =(FloatingActionButton)view.findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
startActivity(new Intent(getActivity(), PublishActivity.class));
}
});
mRecyclerView =(RecyclerView)view.findViewById(R.id.list_main);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mCommunityAdapter =new CommunityAdapter(mList,getActivity());
mRecyclerView.setAdapter(mCommunityAdapter);
Log.d("TAG", "onCreateView: 3");
}
private void initData(){
mList.clear();
AVQuery<AVObject> avQuery =new AVQuery<>("product");
avQuery.orderByDescending("createAt");
avQuery.include("owner");
avQuery.findInBackground(new FindCallback<AVObject>() {
@Override
public void done(List<AVObject> list, AVException e) {
if(e == null){
mList.addAll(list);
mCommunityAdapter.notifyDataSetChanged();
}else {
e.printStackTrace();
}
}
});
}
public void onResume() {
super.onResume();
AVAnalytics.onResume(getActivity());
initData();
Log.d("TAG", "onCreateView: 4");
}
@Override
public void onPause() {
super.onPause();
AVAnalytics.onPause(getActivity());
}
}
已经找到是Adapter.notifyDataSetChanged()导致的问题,按照官方文档给的是Activity的存储没有问题,但放在Fragment中就不行了,我该如何去除父布局