隐藏片段时如何留出空地

时间:2013-03-14 14:16:48

标签: android android-fragments show-hide

我一直在寻找一段时间,并且只想出了隐藏片段时不要留下空地的方法。 我有一个3面板应用程序,我希望剩下的面板保持相同的大小,当我隐藏其中一个。

这是我的xml代码:

   
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:id="@+id/fragment_container"
        android:background="#140506">
        <fragment
            android:name="tets.twopane.FragmentA"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:id="@+id/titles"
            android:layout_weight="1"
            >
        </fragment>
        <LinearLayout
        android:layout_width="5dp"
        android:layout_height="match_parent"
        android:orientation="horizontal">

        </LinearLayout>
        <fragment
            android:name="tets.twopane.FragmentB"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:id="@+id/viewers"
            android:layout_weight="1"
            >
        </fragment>
        <LinearLayout
        android:layout_width="5dp"
        android:layout_height="match_parent"
        android:orientation="horizontal">

        </LinearLayout>
        <fragment
            android:name="tets.twopane.FragmentC"
            android:layout_width="0dp"

            android:layout_height="match_parent"
            android:id="@+id/pass"
            android:layout_weight="1"
            >
        </fragment>
    </LinearLayout>

这是我主要活动中隐藏片段的功能:

  public void Hide3() {
    final FragmentTransaction ft = this.getFragmentManager()
            .beginTransaction();
    final Fragment myFrag = this.getFragmentManager().findFragmentById(
            R.id.pass);
    ft.hide(myFrag);
    ft.commit();

}

欢迎任何帮助

1 个答案:

答案 0 :(得分:0)

我认为您可以用容器(如线性布局)包装每个片段,然后将布局权重转移给它。所以例如以这种方式包装FragmentA:

<LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
         android:layout_weight="1"
        android:orientation="horizontal">
        <fragment
            android:name="tets.twopane.FragmentA"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/titles"
            >
        </fragment>
 </LinearLayout>