【问题标题】:Android Fragment navigation back previous pageAndroid Fragment 导航返回上一页
【发布时间】:2019-09-21 12:23:31
【问题描述】:

我正在尝试在我的项目中使用一项活动。 在主fragment i 用户viewpage 和tablayout 中,ViewPager 包含五个fragment,在第一个fragment 中包含两个fragment 我形成一个fragment 导航到新fragment,返回时我丢失了ViewPager 的fragment 中的所有数据。

就像这样 enter link description here

正如@Ail 告诉我的那样。我修复了这个错误。

之前的代码:

protected View mView;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    mView = inflater.inflate(getRootView(), container, false);
    initView();
    initData();
    return mView;
}

之后的代码:

public View mView;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    if (mView == null) {
        mView = inflater.inflate(getRootView(), container, false);
        initView();
        initData();
    }
    return mView;
}

【问题讨论】:

  • 你能给你的片段交易代码sn-p吗?
  • @Shasapo 我知道如何修复这个错误

标签: android navigation android-jetpack


【解决方案1】:

您拥有一个 Activity,这意味着您正在使用架构导航组件。

当您导航回主屏幕时,您的回调方法(如 onViewCreated)会被调用。您应该按照 Ian Lake 的建议,在主屏幕中保留对第一次创建的视图的引用并再次返回它:

https://twitter.com/ianhlake/status/1103522856535638016

也看Fragments destroyed / recreated with Jetpack's Android Navigation components

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 2022-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多