フラグメントって何だ? 2020/10/07
アンドロイドのアプリは画面が複数あると面倒です。これを楽にするための仕組みがフラグメントらしいです。フラグメントはアンドロイドのバージョン3.0に採用されましたが、このころから今年までアンドロイドのアプリ製作は中断していたので知りませんでした。

アプリはMainActivityにTopFragmentとBottomFragmentを実装することで実現します。フラグメントにすることによりオブジェクトの独立性を高めソースがすっきりします。しかし...
フラグメントなんてない時代にこんなアプリを作っていました。

1画面の中に3つのViewがあり複雑です。フラグメントがあったら容易にできたとは思えません。
activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFF00"
tools:context=".MainActivity"
android:orientation="vertical">

<fragment
android:name="net.sadaji.twofragment.TopFragment"
android:id="@+id/fragment_top"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
tools:layout="@layout/fragment_top" />

<fragment
android:name="net.sadaji.twofragment.BottomFragment"
android:id="@+id/fragment_bottom"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
tools:layout="@layout/fragment_bottom" />
</LinearLayout>
TopFragmentとBottomFragmentを実装します。
TopFragment.java

package net.sadaji.twofragment;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class TopFragment extends Fragment {
    @Override
    public View onCreateView(
            LayoutInflater inflater,
            ViewGroup container,
            Bundle savedInstanceState
    ) {
        return inflater.inflate(R.layout.fragment_top, container);
    }
}
Fragmentを継承します。
fragment_top.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:srcCompat="@drawable/caddie" />
</LinearLayout>
普通にxmlを書くだけです。
このプログラムはHello World.と同じように何もしないプログラムです。フラグメント間、フラグメントとMainActivity間でデータのやり取りをするプログラムは別途公開予定。

ダウンロード:
activity_main.xml MainActivity.java
BottomFragment.java  fragment_bottom.xml
TopFragment.java fragment_top.xml