我一直在寻找一段时间,并且只想出了隐藏片段时不要留下空地的方法。 我有一个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();
}
欢迎任何帮助
答案 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>