0

我一直在寻找一段时间,只是想出了在隐藏片段时不留下开放空间的方法。我有一个 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();

}

欢迎任何帮助

4

1 回答 1

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>
于 2013-03-15T02:32:33.100 回答