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