添加两个窗格的平板电脑布局会导致在移动设备中找不到视图(小于w600dp)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了添加两个窗格的平板电脑布局会导致在移动设备中找不到视图(小于w600dp)相关的知识,希望对你有一定的参考价值。

我想要设置我的烘焙应用程序,以便在平板电脑上显示两个窗格(2个片段)布局:

片段A =左窗格:包含RecyclerView中列出的配方步骤,片段B =右窗格:包含步骤详细信息

对于移动设备(布局xml设置为小于w600dp),我只想显示片段A。

这是我的活动中包含以下两个片段的代码:

public class RecipeActivity extends AppCompatActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_recipe);

        // Instantiate Fragment Manager in charge of fragments associated with this Activity
        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        RecipeFragment recipeFragment = new RecipeFragment();
        fragmentTransaction.add(R.id.recipe_container, recipeFragment).commit();

        RecipeDetailsFragment recipeDetailsFragment = new RecipeDetailsFragment();
        fragmentManager.beginTransaction().add(R.id.recipe_details_container, recipeDetailsFragment).commit();


        }
    }
}

在移动屏幕模拟器上运行时,应用程序将引发此错误:

java.lang.IllegalArgumentException:找不到ID为0x7f070081的视图(com.example.bakingapp:id / recipe_details_container)片段RecipeDetailsFragment {a70b224(264e9189-e051-400b-9899-ba42871c2f89)id = 0x7f0700

但是,如果删除了将配方_details_container添加到事务管理器的代码,则该片段将能够毫无问题地加载。

所以我的问题是:

  1. 谁能解释一下我需要用这种方法编写的代码来说明平板电脑的情况?
  2. [我认为我的理解中缺少一些内容,所以详细说明会有所帮助。
答案

因为容器R.id.recipe_details_container在“移动”布局中不存在。您应先检查视图是否存在,然后再尝试添加详细信息片段

以上是关于添加两个窗格的平板电脑布局会导致在移动设备中找不到视图(小于w600dp)的主要内容,如果未能解决你的问题,请参考以下文章

Angularjs Ionic - 移动设备和平板电脑的不同布局

如何在 Xcode 11 中拖动编辑器窗格?

realtek高清晰音频管理器 中找不到耳机选项,但耳机却可以发声怎么回事?

在运行时配置中找不到env:13

在 Windows 7 笔记本电脑中找不到 IIS_IUSRS 组

React 17 - 添加 Evergreen UI 窗格会导致错误:无效的挂钩调用。 Hooks 只能在函数组件的主体内部调用