gpt4 book ai didi

android - 不同方向的不同 fragment

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:44:11 27 4
gpt4 key购买 nike

我在平板电脑应用程序中有一个 Activity ,我想根据方向显示不同的 fragment 。我认为最简单的方法就是定义两个不同的布局 XML 文件,一个用于横向,一个用于纵向。换句话说,我有/layout/home.xml 看起来像这样:

<LinearLayout android:orientation="horizontal">
<fragment class="com.foo.app.Frag1" android:id="frag1"/>
<fragment class="com.foo.app.Frag2" android:id="frag2"/>
</LinearLayout>

然后在/layout-port/home.xml 中:

<LinearLayout android:orientation="vertical">
<fragment class="com.foo.app.Frag2" android:id="frag2"/>
<fragment class="com.foo.app.Frag3" android:id="frag3"/>
</LinearLayout>

当我运行它时,我可以从横向开始然后转到纵向,一切都很好。但是,当我从纵向切换到横向时,应用程序崩溃并出现资源 ID 等于“frag3”的 android.content.res.Resources$NotFoundException。没错就是去landscape made的时候找Frag3,那个模式下没有Frag3。这发生在 Activity.onCreate 堆栈期间,因此在我的任何代码有任何机会使应用程序崩溃之前。

Fragments 不应该这样工作吗?我需要改用 FragmentTransaction 吗?

最佳答案

如果没有看到代码很难说 - 但是,Resources.NotFoundException 通常意味着您试图错误地查找资源(想想 R.layout.xx、R.drawable.xx 等)。

也就是说,我尝试使用您的布局 XML 编写一个小型应用程序,当我复制您的 XML 代码进行测试时,编译器对我大喊大叫,要求我将字符串硬编码为 ID。尝试将 android:id 属性的值切换为如下所示:

android:id="android:id="@+id/frag1"

这可能会解决问题。

关于android - 不同方向的不同 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5225848/

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