加载片段之前检查视图是否存在

时间:2019-01-18 07:03:08

标签: android android-fragments fragmentmanager

我想在加载片段之前查看视图是否存在。在我加载片段的方法中,我有以下内容:

 public void loadFragment(Fragment fragment){
    FragmentManager fragmentManager = Objects.requireNonNull(getActivity()).getSupportFragmentManager();

    // Begin Fragment transaction.
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();// Replace the layout holder with the required Fragment object.


    fragmentTransaction.replace(R.id.outbound_dashboard_hourly_queued, fragment);
    // Commit the Fragment replace action.
    fragmentTransaction.commit();

}

我想要的是在加载之前检查R.id.outbound_dashboard_hourly_queued是否存在

我该如何进行?

4 个答案:

答案 0 :(得分:1)

只需执行protected String doInBackground(String...url) { return Update(url[0]); } ,然后在视图不为Null的情况下加载片段,请保留if检查。

findViewById(R.id.outbound_dashboard_hourly_queued)

答案 1 :(得分:0)

尝试

检查是否添加了Fragmnet

=TEXT(A1,"MMM D")&" - "&TEXT(B1,"MMM D")

添加Framgnet

 if (getCurrentFragment() instanceof YourFragment)

方法

replaceFragment(new HomeFragment(), "YourFragment");

答案 2 :(得分:0)

您可以使用FragmentManager提供的findFragmentByTag(String tag)方法来检查片段是否已经存在。

Fragment fragment = getSupportFragmentManager().findFragmentByTag(TAG);

要使其正常工作,您需要使用-

将该片段与该TAG一起提交

fragmentTransaction.replace(R.id.outbound_dashboard_hourly_queued, fragment, TAG);

答案 3 :(得分:0)

如果count == 0,请先进行计数检查,然后再添加,否则必须替换代码。

public void loadFragment(Fragment fragment){
    FragmentManager fragmentManager = Objects.requireNonNull(getActivity()).getSupportFragmentManager();

    // Begin Fragment transaction.
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();// Replace the layout holder with the required Fragment object.

    if(fragmentManager.getFragments().size() == 0){
        fragmentTransaction.add(R.id.outbound_dashboard_hourly_queued, fragment).commit();
    }else {
        fragmentTransaction.replace(R.id.outbound_dashboard_hourly_queued, fragment).commit();
    }
    // Commit the Fragment replace action.

}

请尝试一下,让我知道。

相关问题