0
我有两个片段的活动,一个显示列表,一个显示点击项目的细节。当启动应用程序时,细节部分是静态的,一旦我点击一个应该被替换的项目。问题是旧的片段没有被替换,所以两个视图都是彼此重叠的。Android片段重叠
我的活动布局是:
<?xml version="1.0" encoding="utf-8"?>
<fragment
android:id="@+id/listFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
class="com.fragments.FragmentOrderList" >
</fragment>
<fragment
android:id="@+id/detailFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
class="com.fragments.FragmentOrderDetails" >
</fragment>
的细节片段的布局是:
<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" >
<TextView
android:id="@+id/tvOrderDetail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="test view of details fragment" >
</TextView>
而在上面的布局中,我们也可以看到最初看到的静态文本。在我的活动,以取代片段的代码是这个
FragmentTransaction transaction = getFragmentManager().beginTransaction();
FragmentOrderDetails newFragment = new FragmentOrderDetails();
newFragment.setArguments(b);
transaction.replace(R.id.detailFragment, newFragment);
transaction.addToBackStack(null);
transaction.commit();
对我来说,它看起来是不是“替代”,而是一个“添加”。我是否必须总是删除旧的片段?或者我必须在这里采用不同的方法?在我看来,只有原始片段停留在那里,并在第二,第三,...替换前一个片段被正确替换,只是静态的片段始终停留在那里。
它花了我永远的解决这个问题。最后你给我答案。 – BlackHatSamurai