Fragment を設置
〜 Android Studio の使い方 16 〜
2023-11-11 作成 福島
TOP > androidstudio > fragment

使用ツール

    Android Studio Giraffe | 2022.3.1 Patch 2  


1. Android Studio で通常のプロジェクトを作成する。

ここでは Fragment を表示する*1ので、画面の存在するプロジェクトを作成する。
「Empty Activity」「Empty Views Activity」等のプロジェクトが対象。
「No Activity」でも構わないが、Default Activity の追加が必要になるので、ここでは割愛する。(選択しない)
*1本来、Fragment は表示するものではないが、問題を単純にするため表示する。


2. アクティビティに FragmentContainerView を配置する。

FragmentContainerView は Palette > Containers の中にある。
デザインモードの画面にドロップできないので、Component Tree に配置する。
要素名内容備考
アクティビティAndroid > app > res > layout > activity_main.xml-
部品種類FragmentContainerView作成した Fragment をここに設置する。
idfragmentContainerViewプログラムから R.id.fragmentContainerView として参照される。
FragmentContainerView を ConstraintLayout に設置すると「Missing Constraints in ConstraintLayout」の警告が表示される。
放置でも構わないが、レイアウトの制約 (位置指定) を設定すると警告が消える。


3. Fragment を追加する。

ツリー  Android  >  app 右クリックし、 New  -  Fragment  -  Fragment (Blank)  を選択してフラグメントを追加する。
追加先: Android > app > res > layout > fragment_blank.xml

下記項目を記入し、 をクリックする。
要素名内容備考
Fragment NameBlankFragmentBlankFragment.java が自動生成される。*2
Fragment Layout Namefragment_blankプログラムから R.layout.flagment_blank として参照される。
Source LanguageJava-
Target Source Setmain-

このとき自動的に TextView が fragment_blank.xml に追加される。
実際のプログラムを作成するときは不要なので削除するが、サンプルとして利用するため削除しない。
この TextView を削除すると Fragment が表示されているかどうか分からなくなる。
要素名内容備考
id- (空欄)変更なし。(プログラムから使用しないため、設定しない)
layout_widthmatch_parent変更なし。
layout_heightmatch_parent変更なし。
text@string/hello_blank_fragment変更なし。(@string/hello_blank_fragment の内容は「Hello blank fragment」)

*2本稿では BlankFragment.java を編集しないが、この中で R.layout.fragment_blank が指定されているので、確認しておくこと。


4. Fragment の表示

4-1. MainActivity.java にコードを記述する。
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


// Fragment のインスタンスを生成する BlankFragment blankFragment = new BlankFragment(); // Fragment を FragmentContainerView に割り当てる FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.add(R.id.fragmentContainerView, blankFragment); fragmentTransaction.commit();
} }