Androidアプリのプログラミング/Androidアプリプログラミング実践編

AndroidのFragmentを利用してUIを制御する

FragmentはActivityのロジックとUIを分ける上で非常に便利なAPIです。Fragmentを利用して開発をしてみましょう。

執筆者:若竹 雅貴

Fragmentを利用してより良いUIを開発することができる

FragmentはAndroid 3.0(API Level 11)から利用が可能になりました。FragmentはActivityのロジックとUIを分ける上で非常に便利なAPIです。Fragmentを利用することで、Activity内で煩雑な画面サイズ対応をする必要がなくなります。例えば、タブレット端末とスマートフォン端末で表示を切り替えたい時などにFragmentは非常に重宝します。

fragmentを利用したUI管理の仕方(画像はAndroid Developersより引用)

fragmentを利用したUI管理の仕方(画像はAndroid Developersより引用)


上記の画像では、タブレット端末ではActivityAにFragmentAとFragmentBを同時に表示させています。一方、スマートフォンではActivityAでリスト項目を選択するとActivityBに存在するFragmentBが起動します。

FragmentはActivityと似ている

fragmentのライフサイクル。(画像はAndroid Developersより引用)

fragmentのライフサイクル。Activityのライフサイクルと似ている。(画像はAndroid Developersより引用)

FragmentはActivityと同様に、ライフサイクルがあります。FragmentとActivityのクラスは非常に似た性質を持っていますので、すでにActivityのみで開発してしまっているアプリでも、Fragmentに簡単に移行させることもできます。

それでは今回はFragmentがどのように動くのかを簡易なおみくじを開発しながら見て行きましょう。

Fragmentのクラスを利用する

Fragmentの生成は、静的な方法と動的な方法があります。今回は静的な方法をご紹介いたします。動的な方法についてはこちらを参考にしてください(動的な方法では予めViewを用意して、それをFragmentに置き換える、という方法をとります)。

まず、Fragmentを継承したクラスを用意します。

 
public class OmikujiFragment extends Fragment{

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return super.onCreateView(inflater, container, savedInstanceState);
}

@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}

@Override
public void onPause() {
super.onPause();
}

@Override
public void onDestroyView() {
super.onDestroyView();
}

@Override
public void onDestroy() {
super.onDestroy();
}

}
以上で非常に簡単ですが、Fragmentとしては最低限の機能が完成しました。Activityを実装する場合とほぼ同じメソッドをオーバーライドすることができます。主に、onCreateViewメソッドにてFragmentが起動された際の動作をハンドリングしていきます。

また、onDestroyメソッド(Fragmentが終了した際に呼び出される)では利用したオブジェクトの破棄やガーベジコレクションを行うことで、アプリのメモリ使用量を削減することができます。
  • 1
  • 2
  • 3
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます