Android 3.0で導入され、Android 4.0からスマートフォンで利用できるようになった注目機能である「Fragment(フラグメント)」。 今回はヤフー矢端智光さんに、Fragmentでシンプルに実装できる効率的なUI設計についてレポートを書いていただきました。 by 馬場美由紀 (CodeIQ中の人) Fragmentでシンプルで効率的なUIの開発を ヤフー矢端です。 FragmentはAndroid3系から使用可能な機能なので、知っている人にとっては今さらという内容になるかもしれません。 しかし日本の市場では2.x系のAndroid端末を保有するユーザーの方も少なくなく、アプリを2.x系以上で対応していた都合から、「Fragmentを知っているけど、まだあまり触ったことがない」という開発者の方もいるのではないかと思います。 そこで本稿では、開発で新たにFragmentを導入
FragmentManager.popBackStack で、IDか名前を指定すればOK。 // フラグメントマネージャー FragmentManager fm = getFragmentManager(); // 積まれたトランザクションの数 fm.getBackStackEntryCount(); // 一つだけ戻す fm.popBackStack(); /* * IDを取得し指定の位置まで戻す * popBackStack の第二引数(フラグ)はそれを含んで戻すかそこまで戻すかを指定 */ // 3番目のトランザクション開始時まで戻る BackStackEntry entry = fm.getBackStackEntryAt(3); fm.popBackStack(entry.getId(), 0); // 2番目のトランザクション開始時まで戻る BackStackEntry ent
前回はUIを持たないFragmentであるNfcFeliCaFragmentを作ったが、今回はそのFragmentを使うActivity側の処理を考えてみる。 Fragmentは自身とActivityを含めた画面の遷移とそのバックスタックを制御する為に"トランザクション"※という概念を導入しており、ActivityにFragmentを追加するためにはトランザクションのコンテキストで実行する必要がある。 FragmentをActivityに追加する(NFCTagReader.java) public class NFCTagReader extends FragmentActivity : : FragmentManager fm = this.getSupportFragmentManager(); NfcFeliCaTagFragment fragment =new NfcFeliCaT
■ Fragment のサブクラス ・DialogFragment ・ListFragment ・PreferenceFragment ・WebViewFragment ■ その他のヘルパークラス ・FragmentManager ・FragmentTransaction Activity のレイアウトにフラグメントのレイアウトを挿入する ■ Activity のレイアウトファイルに <fragment> タグで入れる <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android
XOOMでの開発やってると必ずFragmentをやらないといけなくなると思うんですが、こいつが何者か未だによく使い方を理解してないです。しかし、わかったことからすこしずつメモってわかるようになろうと思います。 今回は、Fragmentに値を渡す方法。Activityだったら、Intentに値を仕込んでstartActivity(intent)なわけですが、Fragmentでは以下のようにします。 FragmentManager fm = getFragmentManager(); FragmentTransaction t = fm.beginTransaction(); HogeFragment fragment = new HogeFragment(); Bundle bundle = new Bundle(); bundle.putExtra("test", "これはテストです。")
Fragment のサンプルでは、setArguments() を使って Bundle を介して値を渡している例を多く見かけます。 ① HogeFragment f = new HogeFragment(); Bundle args = new Bundle(); args.putInt("num", num); f.setArguments(args); とやるより ② HogeFragment f = new HogeFragment(num); や ③ HogeFragment f = new HogeFragment(); f.setNum(num); とかやった方がいいんじゃない? Arguments 介するのは面倒じゃない?なにがいいの? と思う人も多いのではないでしょうか。 そこで、Arguments がどういいのかを説明したいと思います。 1. Fragment のコンスト
FragmentTabHost とは FragmentTabHost は Fragment をタブで切り替えるための View です。Android 1.6 から使用することができます。Activity にタブを表示して View を切り替える実装は以前は TabActivity を使っていましたが、現在は非推奨になっています。この機会に最新の実装方法を覚えておきましょう! FragmentTabHost の使いかた 1. レイアウトを作る まずはレイアウトを作ります。 <android.support.v4.app.FragmentTabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="match_pa
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く