※本記事はAndroid JetpackのNavigationが無い時代に書かれたものです。Navigationを使う場合、Fragmentの貼り付け方などが異なるため、別の記事を参照してください(記事を書いたらここにリンク貼ります。。。) *--- まずは1画面のアプリでFragmentを使ってみましょう。次の手順でFragmentを貼り付けてみます。 Fragment用のレイアウトXMLを作る Fragmentを継承したクラスを作る Activity用のレイアウトXMLをFrameLayoutのみにする ActivityのonCreate()で、指定した位置にFragmentを貼り付ける では、順にみていきましょう。 Fragment用のレイアウトXMLを作る Fragment用のレイアウトXMLを用意します。ファイル名をfragment_xxxx.xmlのようにしておくと「あ、これは
I have a fragment I am trying to add into a view. FragmentManager fragMgr=getSupportFragmentManager(); feed_parser_activity content = (feed_parser_activity)fragMgr .findFragmentById(R.id.feedContentContainer); FragmentTransaction xaction=fragMgr.beginTransaction(); if (content == null || content.isRemoving()) { content=new feed_parser_activity(item.getLink().toString()); xaction .add(R.id.feedCont
ViewPager を Fragment と一緒に使うときの注意として ViewPager には id がセットされていなければならない、というものがあります。 例えば、次の用に XML レイアウトを使わないで ViewPager を画面に追加した場合、アプリが強制終了します。 public class MainActivity2 extends FragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ViewPager mViewPager = new ViewPager(this); setContentView(mViewPager); PagerAdapter mAdapter = new PagerAdapt
Androidアプリケーションを始めて作成するときに、一番つまづきがちになるLayoutの構成の仕方。 本エントリでは、下記要素についての紹介を踏まえて、思い通りの位置にViewを構成する方法を紹介します。 今回紹介する要素 android:layout_weight android:gravity android:layout_gravity android:layout_margin android:padding 今回のサンプルではこれらの要素を使用して、以下画面を作成します。 また、今回の記事の作成にあたり、以下サイトを参考にさせていただきました。 ありがとうございました。 zaki日記 様 http://zaki.tdiary.net/20110702.html#p01 プログラミング雑記 様 http://d.hatena.ne.jp/Korsakov/20100826/128
Fragment から Activity にコールバックしたいときに、例えばこんな感じで実装することができます。 public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MainFragment fragment = new MainFragment(); fragment.setOnOkBtnClickListener(new MainFragment.OnOkBtnClickListener() { @Override public void onOkClicked() { // TODO Auto-generated method stub } }); getF
3.0 以降では FragmentTransaction 時のアニメーションとして "fragmentOpenEnterAnimation" などのスタイルが用意されているのですが、 Support package の FragmentTransaction 時のアニメーションではスタイルは参照されていません。 FragmentTransaction 時の Animation は FragmentManager の loadAnimation() メソッドで決まります。 このメソッド内のロジックは次のようになっています。 1. Fragment の onCreateAnimation() の戻り値の Animation インスタンスが null じゃなかったからそれを使う 2. onCreateAnimation() の第3引数で渡した Fragment の mNextAnim フィールド
前回は二つのフラグメントを静的に一つのアクティビティに組み合わせました。 コードの再利用性という観点からはフラグメントを静的に組み合わせるのも良いですが、ディスプレイに合わせて動的に UI を動かす、 という点においては静的な組み合わせは必ずしも望ましいものではありません。 ここでは動的にフラグメントを設定する方法について説明します。 なお、フラグメントは Android 3.0 以降のものであることに注意してください。Android 2 以前の環境では動作しません。 縦向き、横向きでフラグメントを切り替える ここではディスプレイを縦 (ポートレイト) にした場合と横 (ランドスケイプ) にした場合で、フラグメントを切り替える方法を示します。 横向きの場合はこのような表示で・・・ 縦向きの場合は次のようになります。 もっとも、通常縦横だけの切り替えであれば、レイアウトリソースファイルを追加
つまり、2.x で Fragment を使うときの注意点ですね。 まーた、はまりました orz Fragment が Activity の全画面を占めていて、FragmentTransaction を使って Activity 内で画面切り替えをする場合です。 setContentView() でセットする View のコンテナである FrameLayout の ID が android.R.id.content なので、これを利用して @Override protected void onCreate(Bundle savedInstance) { super.onCreate(savedInstance); Page1Fragment f = new Page1Fragment(); FragmentManager manager = getSupportFragmentManager(
【Androidにおけるメニュー画面およびプリファレンス(設定項目)の作成】 Androidに備わっているクラスを利用して、メニュー画面を簡単に作れるようになっている。 メニューについてはAndroidの仕様変更が結構あり、ちょっと前の参考書で対応できない部分になかなか手間取った。 まず、ハードとしてのmenuボタンの廃止により、基本的にはアクションバー右上にメニューが表示されるようになった。 また3.0でFragmentという、アクティビティを複数の部分で作成する機能が実装されたことにより、 Android(3.0)より前と、3.0以後によってメニューの実装方法が異なることに注意。 共通する部分 ・メニュー項目の作成 ・呼び出し元アクティビティ内の記述 ・プリファレンスのレイアウト(正確にはレイアウト元)xmlファイル ・メニュー項目の作成 layout/menuにmenu.xml(ファ
setContentViewとaddContentView ActivityのContentViewを設定するには、おなじみのsetContentViewメソッドを使うが、 addContentViewというあまり見かけないメソッドもある。 addContentViewメソッドを使うと、Activity画面に複数のContentViewを重ね合わせて表示させる事ができる。 以下に、その例を示す。 リスト1_1(ViewTree1Activity.java) リスト1_2(main.xml) リスト1_3(main2.xml) 実行画面 main.xmlとmain2.xmlの2つのレイアウトファイルにButtonを1つずづ配置し、 このレイアウトファイルを使う2つのContentViewを重ね合わせて表示させている。 それぞれのButtonをクリックすると、それに対応したonClickイベン
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く