片段到片段交易 android
Fragment to fragment transaction android
我有一个容器a.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.tc.MainActivity"
tools:ignore="MergeRootFrame" />
是显示tab内容,是一个listview。第一个选项卡 A 是 b.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/list"
android:layout_height="0dp"
android:layout_width="match_parent"
android:background="@color/lightGrey"
android:layout_weight="0.8"
android:divider="@android:color/transparent"
android:dividerHeight="5.0sp"
android:focusable="false"
android:focusableInTouchMode="false">
</ListView>
</LinearLayout>
在 A 内部,当用户单击单个列表视图项时,我想用另一个片段替换当前列表视图,即 ContentFragment。
public void onItemClick(AdapterView<?> parent, final View view,
int position, long id) {
ContentFragment c= new ContentFragment();
c.setArguments(args);
a.getFragmentManager().beginTransaction()
.replace(xxx, c)
.addToBackStack(null)
.commit();
}
对于xxx字段,我觉得应该填a.container?但是我怎样才能得到它呢?在选项卡 A 内,我是 inflater.inflate(R.layout.b, container, false);
您可以在 tabview 中像这样替换片段
public void replaceFragment(Fragment fragment,booleanaddToBackStack,ContextmContext)
{
FragmentTransaction transaction = ((FragmentActivity) mContext).getFragmentManager().beginTransaction();
if (addToBackStack)
{
transaction.addToBackStack(fragment.getClass().getSimpleName());
}
transaction.add(R.id.realtabcontent, fragment);
transaction.commit();
((FragmentActivity) mContext).getFragmentManager().executePendingTransactions();
}
我有一个容器a.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.tc.MainActivity"
tools:ignore="MergeRootFrame" />
是显示tab内容,是一个listview。第一个选项卡 A 是 b.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/list"
android:layout_height="0dp"
android:layout_width="match_parent"
android:background="@color/lightGrey"
android:layout_weight="0.8"
android:divider="@android:color/transparent"
android:dividerHeight="5.0sp"
android:focusable="false"
android:focusableInTouchMode="false">
</ListView>
</LinearLayout>
在 A 内部,当用户单击单个列表视图项时,我想用另一个片段替换当前列表视图,即 ContentFragment。
public void onItemClick(AdapterView<?> parent, final View view,
int position, long id) {
ContentFragment c= new ContentFragment();
c.setArguments(args);
a.getFragmentManager().beginTransaction()
.replace(xxx, c)
.addToBackStack(null)
.commit();
}
对于xxx字段,我觉得应该填a.container?但是我怎样才能得到它呢?在选项卡 A 内,我是 inflater.inflate(R.layout.b, container, false);
您可以在 tabview 中像这样替换片段
public void replaceFragment(Fragment fragment,booleanaddToBackStack,ContextmContext)
{
FragmentTransaction transaction = ((FragmentActivity) mContext).getFragmentManager().beginTransaction();
if (addToBackStack)
{
transaction.addToBackStack(fragment.getClass().getSimpleName());
}
transaction.add(R.id.realtabcontent, fragment);
transaction.commit();
((FragmentActivity) mContext).getFragmentManager().executePendingTransactions();
}