私は3つのコンテナ(LinearLayoutも)を持つLinearLayoutを持っていますが、これらにはweight=1
. そのレイアウトは次のとおりです。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:divider="?android:dividerHorizontal"
android:orientation="horizontal"
android:showDividers="middle" >
<LinearLayout
android:id="@+id/container1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#FF0000"
android:orientation="vertical" >
</LinearLayout>
<LinearLayout
android:id="@+id/container2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#00FF00"
android:orientation="vertical" >
</LinearLayout>
<LinearLayout
android:id="@+id/container3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
</LinearLayout>
</LinearLayout>
これらのコンテナのそれぞれに、1 つのフラグメントを追加します。
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.container1, fragment1, TAG1);
transaction.add(R.id.container2, fragment2, TAG2);
transaction.add(R.id.container3, fragment3, TAG3);
transaction.commit();
したがって、これらは次のように配置されています。
-------------------------------------
| | | |
| | | |
| | | |
| | | |
| | | |
| fragment1 | fragment2 | fragment3 |
| | | |
| | | |
| | | |
| | | |
| | | |
-------------------------------------
ボタンをクリックすると、最初にコンテナと一緒にフラグメントを非表示にし、の右側にある新しいフラグメントを表示しfragment3
ます。したがって、次のようなものがあります。
-------------------------------------
| | |
| | |
| | |
| | |
| | |
| fragment3 | fragment4 |
| | |
| | |
| | |
| | |
| | |
-------------------------------------
ボタンをクリックすると、これを使用してフラグメントを非表示にします。
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.hide(fragment1);
transaction.hide(fragment2);
transaction.addToBackStack(null);
transaction.commit();
コンテナと一緒にフラグメントを非表示にしますが、表示される画面は次のようになります。
-------------------------------------
| | | |
| | | |
| | | |
| | | |
| | | |
| empty | empty | fragment3 |
| | | |
| | | |
| | | |
| | | |
| | | |
-------------------------------------
ここでempty
は、完全に空、フラグメント、コンテナー、何もない、ただの空のスペースを意味します。
それで、私の質問は、そこに空白を残さずにフラグメントを非表示にする方法ですか?