我有一个活动 A,里面有一个片段 A。
Activity A 使用布局 X,片段 A 使用布局 A。
布局 X 的代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<fragment
android:id="@+id/fragment1"
android:name="android.app.DialogFragment"
android:layout_width="wrap_content"
android:layout_height="500dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="113dp"
class="com.example.fragtester.FragA" />
</RelativeLayout>
布局 A 就是 textview + linearlayout。
我设置了另一个使用布局 B 的片段 B。
现在我在活动 A 中使用以下代码来更改片段:
Fragment f = new FragB();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.fragment1, f);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.addToBackStack(null);
ft.commit();
我最终将布局 B 显示在布局 A 下。
所以我使用 FrameLayout 将片段包装在布局 X 中并使用
ft.replace(R.id.FrameLayout1, f);
现在视图运行良好。然而,另一个问题出现了。
虽然布局 B 覆盖了布局 A,但按钮仍然处于活动状态。
这意味着当我查看布局 B 时,我仍然可以单击布局 A 上的按钮,即使我没有看到它。
即使我添加片段 C/D/E.....(布局 C/D/E....),布局 A 上的按钮仍然处于活动状态。
谁能解释这是为什么?我是否错误地使用了片段?谢谢!
一种打通的方法是将布局A留空,并使用其他布局覆盖它。但这似乎不是“正确”的方式?