ページ

2013年11月3日日曜日

Framentを切り替えて画面遷移する

※ Android Studio(I/O Preview) 0.3.2を使用しています。

今回は、Fragment上のボタンを押すと、新しいFragment切り替えて画面遷移をします。
また、戻るボタンを押した場合に元のFragmentに戻るようにします。

プロジェクトの作成

まずは、新しいプロジェクトを作成します。




そのままBlank Activityで【Next】を押します。


【Finish】でプロジェクトが新規作成されます。



新しいFragmentの追加

プロジェクトの作成が終わると、まずパッケージ名を選択して、右クリックから、Android Componentを追加します。




名前をSubFragmentとしたFragmentを追加します。
ここでlayout fileも作成するようにしておき、【OK】を押します。



Layoutは、ファイル名をfragment_sub、Root elementをLinearLayoutにして、【OK】を押します。






リソースファイルの修正

まずは、画面遷移の契機となるボタンをfragment_main.xmlに追加します。


次に、sub_fragment.xmlにText Viewを追加します。


Fragmentの切り替え処理の実装

SubFragment.javaには、android.app.Fragmentがインポートされているため、SubFragmentクラスは、android.app.Fragmentから派生されていますが、サポートライブラリをしているので、これをandroid.support.v4.app.Fragmentから派生するように修正します。

次に、MainActivity.javaにfragment_main.xmlの次へボタンを押した場合のイベントハンドラonClickNextを実装します。

Fragmentの操作は、トランザクションという単位で管理されています。これは、FragmentTransactionのbeginTransaction()からcommitを1つの単位として、管理しています。 まず、FragmentTransactionを使用して、トランザクションを開始し、現在表示しているFragmentを新しく生成したSubFragmentにreplaceします。

このままでは、戻るボタンを押すとアプリが終了してしまうので、addToBackStackを使用して現在のトランザクションの状態をBackStackに追加しておきます。

こうすると、戻るボタンを押した場合やpopBackStackを実行すると、commit前のFragmentの状態に戻すことができます。 そして、commitを行うと、Fragmentの切り替えが実行されます。

これで、Fragmentの切り替えができるようになりました。

実行

4.3のエミュレータで実行したら、このようになります。

【次へ】ボタンを押すと、SubFragmentが表示されます。
戻るボタンを押すと、上の画面に戻ります。


0 件のコメント:

コメントを投稿