【发布时间】:2016-12-29 01:30:20
【问题描述】:
我在片段中有一个RecyclerView,最初是隐藏的。当用户单击一个按钮时,我将 RecyclerView 的可见性设置为 true,并在 ArrayList 上显示一些数据。
当我在顶部移动另一个片段时问题就开始了(我在 backStack 中添加了带有 RecyclerView 的前一个片段):如果我从新片段中单击返回,则前一个片段(带有 RecyclerView 的片段)是可见并在onCreateView() 中记录了我用于recyclerView 的数据集的值,一切都在那里,但是recyclerView 是空的(只显示页脚项)。
如果我们用RecyclerView 和NextFragment 调用RvFragment 片段,那么进入后台堆栈然后离开架构的片段是:
(back pressed)
RvFragment ----------> NextFragment ------------> RvFragment
这是来自onCreateView() 的代码:
@Nullable
@Override
public View onCreateView(final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_photo_comments, container, false);
ButterKnife.bind(this, view);
Timber.i("onCreateView data.size == %d", commentArrayList.size());
setToolbarTitle();
Picasso.with(getActivity())
.load(photo)
.placeholder(R.drawable.ic_timeline_image_placeholder)
.centerCrop()
.fit()
.into(ivPhoto);
if (hasCommentsVisible) {
Timber.i("comments are visible!! and dataSize == %d", commentArrayList.size());
llFlagsCommentsContainer.setVisibility(View.GONE);
rvCommentsList.setVisibility(View.VISIBLE);
}
tvComments.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
hasCommentsVisible = true;
llFlagsCommentsContainer.setVisibility(View.GONE);
rvCommentsList.setVisibility(View.VISIBLE);
}
});
initRecyclerView();
return view;
}
您可以通过上面代码中的日志语句看到我可以确认数据存在。谢谢!
【问题讨论】:
-
您何时以及如何填充
commentArrayList? -
在
onCreate()内部我开始一个Retrofit调用并在一个方法中接收数据:@Override public void showData(Comment comment) { commentArrayList.add(comment); adapter.addItem(comment); adapter.notifyDataSetChanged(); }
标签: android android-fragments android-recyclerview