0

我正在使用带有 4 个片段的 actionbar.Tab 构建应用程序。我想通过单击该 listFragment 内的 listView 的第一项来将其中一个列表片段替换为其他片段。

xml 仅包含图像和列表视图:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:id="@+id/joFl" 
android:layout_height="fill_parent"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical" >

<ImageView
    android:id="@+id/imageView1" 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/jo_logo" />



    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:background="@android:color/black"
        android:clickable="true"
        android:paddingTop="10dp"
        android:smoothScrollbar="true" >
    </ListView>


    </LinearLayout>

代码是:

{
    case 0: {


        FragmentTransaction ft = getFragmentManager().beginTransaction();
        ShultzFragment sf = new ShultzFragment();
        ft.replace(R.id.joFl, sf);
        ft.commit();

        break;
    }

我也尝试从 LinearLayout 更改为 FrameLayout 但它没有显示 imageView 并且 replace() 有效,但它一起显示了 2 个片段。

有没有更简单的方法来实现它?在此先感谢,UDI

4

1 回答 1

0

通过以下方式解决了这个问题:

        FragmentTransaction ft = getFragmentManager().beginTransaction();
        ShultzFragment sf = new ShultzFragment();
        ft.replace(R.id.fragment_container, sf);
        ft.addToBackStack(null);
        ft.commit()

不管怎么说,还是要谢谢你

于 2012-08-24T16:30:59.393 回答