gpt4 book ai didi

android - 当按返回按钮不更新 fragment 适配器时,转到上一个 fragment

转载 作者:行者123 更新时间:2023-12-03 13:28:12 26 4
gpt4 key购买 nike

我有一个带有 fragment FA的 Activity A,从这个 fragment 我转到FAB,最后一个 fragment 是FragmentPagerAdapter。
当我从A转到FA到FB时,按返回按钮并返回FA,然后再次转到FB,此 fragment 未显示任何内容。

我的寻呼机适配器的getView方法未调用。

这是我的交易代码:

从A到FA:

private void setFragment() {
FragmentManager fragmentManager = getSupportFragmentManager();
Fragment replyGroupsFragment = new ReplyGroupsFragment();
Bundle bundle = new Bundle();
bundle.putString("title", reportName);
replyGroupsFragment.setArguments(bundle);
fragmentManager.beginTransaction().replace(R.id.container, replyGroupsFragment, "ReplyGroupsFragment").commit();
getSupportActionBar().setTitle(getString(R.string.info));
getSupportActionBar().setDisplayShowTitleEnabled(true);
}

从FA到FB(使用butterkniffe)
@OnItemClick(R.id.listViewReplyGroup)
void listClick(int position) {
List<DomainReplie> domainReplieArrayList = generateRepliesList(position);
setRepliesFragment((ArrayList<DomainReplie>) domainReplieArrayList);
}

我的PagerFragment包含以下内容:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ReplyGroupsActivity replyGroupsActivity = (ReplyGroupsActivity) getActivity();
List<DomainReplie> replies = getArguments().getParcelableArrayList("replies");
adapter = new PagerAdapter(replyGroupsActivity.getSupportFragmentManager(), this, replies);
setActionBar();
}

@Override
public void onResume() {
super.onResume();
FirextApplication.getInstance().getBus().register(this);
}

@Override
public void onPause() {
super.onPause();
FirextApplication.getInstance().getBus().unregister(this);
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.work_containter_replies, container, false);
ButterKnife.inject(this, view);
pager.setAdapter(adapter);
return view;
}

两种情况下的生命周期都相等,但在第二轮屏幕上什么也没显示。

最佳答案

有点晚了,但也许会对其他人有所帮助。

我有同样的问题。最终,我解决了它,并且犯了与您相同的错误...这是导致问题的行:

fragmentManager.beginTransaction().replace(R.id.container, replyGroupsFragment, "ReplyGroupsFragment").commit();

您正在调用 replace(),但是 replace()只是替换了当前 fragment -您必须调用 add()将另一个 fragment 添加到堆栈中-这也是解决ButterKnife再次加载/更新 View 的问题。

注意: butterknife 变化很大!使用 bind()而不是 inject()

关于android - 当按返回按钮不更新 fragment 适配器时,转到上一个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27931225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com