140120訓練

投稿者: | 2014年1月20日

フラグメント

Android 3.0から追加された新機能。
画面サイズに応じてアプリがスケールする仕組み。
特にタブレット向けの機能。
らしい。先生の言うことにゃあ、今熱い!これから来る!っていう感じ、とのこと。でも半年前にこれからはフラグメントの時代だぜ!って盛り上がった勢いは無いらしいからこれからの動向次第、らしい。

今回は2つのフラグメントを配置したアプリの作成をする。

用意するファイル

src/パッケージ/MainActivity.java(メイン表示、ありもの)
src/パッケージ/MyFragment1.java(フラグメントその1)
src/パッケージ/MyFragment2.java(フラグメントその2)
res/layout/activity_main.xml(メインレイアウト、ありもの)
res/layout/fragment1.xml(フラグメントレイアウトその1)
res/layout/fragment2.xml(フラグメントレイアウトその2)

フラグメントを継承する

MainActivity.javaにFragmentActivityを継承する。

こんな感じで。
※インポートするときはandroid.support.v4.app.FragmentActivityを使うと1.6以降から対応できるらしい。とりあえずFragment関連のインポートはv4にしておこうね、とのこと。

フラグメントの作成

まず一つ目。
fragment1.xmlに表示させたいレイアウトを作る。
中身は何でもOK。
そしてMyFragment1.javaを下記のように。

Fragmentを継承して、onCreatViewを実装する。戻り値に作ったxmlを設定する。

2つ目も同じように作る。

アクティビティにフラグメントを取り込む

activity_main.xmlにそれぞれのフラグメントクラスの領域を指定してあげる。

実行画面

fragment

動的にフラグメントを呼び出す

特定idのレイアウトにMainActivityで指定したFragmentクラスを呼び出す。

フラグメントからフラグメントへ情報を引き継ぐ

一つ目のフラグメントクラスで両方の情報を処理する。
ミソはfindViewする時にgetActivity()から呼び出すこと。

getActivity()でfindViewしてしまえば後は普段のActivityと同じように書ける。

レイアウトを画面の向きによって変更する

resにlayout-landフォルダを作成する。
そこにlayout内と同名のxmlファイルを置く。
layout-landフォルダは横向きの時のレイアウトを表示させる。

リストビューのフラグメント

リストを表示させる。フラグメントクラスのコードは下記の通り。
呼び出し方はxmlにクラス指定するやり方なので割愛。

ListFragmentを継承する。中身は普通のArrayAdapter。

先生のおすすめサイト

Y.A.M の 雑記帳
Android Fragment を使う

今日やったこと

DialogFragmentViewPagerやったよ!
まとめられない・・・・
ViewPagerはスワイプでページ切り替えが出来る熱い機能だったので今度まとめようと思ふ・・・・

とりあえず参考サイトおいておきます・・・

面倒くさいDialogFragment
スワイプで画面を横に切り替える ViewPager の利用方法

やっぱり皆さんガッツリコード書いてらっしゃる・・・・


コメント

Loading Facebook Comments ...

コメントを残す

No Trackbacks.