回答編集履歴
2
回答修正
    
        answer	
    CHANGED
    
    | @@ -26,10 +26,12 @@ | |
| 26 26 | 
             
                    // Inflate the layout for this fragment
         | 
| 27 27 | 
             
                    View v = inflater.inflate(R.layout.fragment_0, container, false);
         | 
| 28 28 |  | 
| 29 | 
            -
                    FragmentManager fragmentManager =  | 
| 29 | 
            +
                    FragmentManager fragmentManager = getFragmentManager();
         | 
| 30 | 
            +
                    if(fragmentManager != null){
         | 
| 30 | 
            -
             | 
| 31 | 
            +
                        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
         | 
| 31 | 
            -
             | 
| 32 | 
            +
                        fragmentTransaction.replace(R.id.container, Fragment1.newInstance());
         | 
| 32 | 
            -
             | 
| 33 | 
            +
                        fragmentTransaction.commit();
         | 
| 34 | 
            +
                    }
         | 
| 33 35 |  | 
| 34 36 | 
             
                    return v;
         | 
| 35 37 | 
             
                }
         | 
1
回答追加
    
        answer	
    CHANGED
    
    | @@ -2,4 +2,38 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            [fragment遷移時、画面が重なり前のページが機能してしまう場合の対処法 | Qiita](https://qiita.com/rui0930/items/420cd3a6920d8c24948f)
         | 
| 4 4 |  | 
| 5 | 
            -
            このサイトの例の場合、空のFrameLayoutを配置しています。この例に倣えば、コードでここにまずFragment1を描画し、ボタンの押下でFragment2に遷移させれば、重なって表示されることはないのではないかと思います。
         | 
| 5 | 
            +
            このサイトの例の場合、空のFrameLayoutを配置しています。この例に倣えば、コードでここにまずFragment1を描画し、ボタンの押下でFragment2に遷移させれば、重なって表示されることはないのではないかと思います。
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            ---
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            > FrameLayoutにして見たところ
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            というのは、Fragment1のLinearLayoutCompatをFrameLayoutに変えてみたということでしょうか。そうではなく、「FrameLayoutのみ」の言わばFragment0を作成して、これをまず描画してみてはどうでしょうかということです。
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            fragment_0.xml
         | 
| 14 | 
            +
            ```xml
         | 
| 15 | 
            +
            <?xml version="1.0" encoding="utf-8"?>
         | 
| 16 | 
            +
            <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
         | 
| 17 | 
            +
                android:id="@+id/container"
         | 
| 18 | 
            +
                android:layout_width="match_parent"
         | 
| 19 | 
            +
                android:layout_height="match_parent" />
         | 
| 20 | 
            +
            ```
         | 
| 21 | 
            +
            Fragment0.java
         | 
| 22 | 
            +
            ```java
         | 
| 23 | 
            +
                @Override
         | 
| 24 | 
            +
                public View onCreateView(LayoutInflater inflater, final ViewGroup container,
         | 
| 25 | 
            +
                                         Bundle savedInstanceState) {
         | 
| 26 | 
            +
                    // Inflate the layout for this fragment
         | 
| 27 | 
            +
                    View v = inflater.inflate(R.layout.fragment_0, container, false);
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                    FragmentManager fragmentManager = getParentFragmentManager();
         | 
| 30 | 
            +
                    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
         | 
| 31 | 
            +
                    fragmentTransaction.replace(R.id.container, Fragment1.newInstance());
         | 
| 32 | 
            +
                    fragmentTransaction.commit();
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                    return v;
         | 
| 35 | 
            +
                }
         | 
| 36 | 
            +
            ```
         | 
| 37 | 
            +
            のような感じで、fragment_0.xmlの空のFrameLayoutにcontainerとIDを付けて、Fragment0のonCreateView()で即座にFragment1にreplaceしてみてはどうでしょうか。
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            一応、PageViewer2を用いて手元でテストしてみましたが、遷移前のFragment1の描画が残ることなくFragment2に切り替わります。
         | 
