質問: PageViewとTabLayoutを連動して画面を作成しています。 |tab1|tab2|tab3| のタブがあるとして、各タブには関連したFragmentが存在します。 tab2を押したらFragment内でListViewが表示され、 1行のitemが以下ような場合 |-------------------| | textView1 | | textView2 | |-------------------| .... textView1をクリックされたら詳細画面へ遷移させたいです。 できるかどうか分かりませんが、 PageViewにFragmentを1個追加し、その画面へ遷移させるようにすればいいと思ってやってみましたが・・・ うまく行きません。 上記のようなやり方でできるでしょうか? もし、できなければ、別の方法をお教えいただきたいと思います。 よろしくお願いします。
回答: 遷移というのがどのような形を想定しているかによりますがいくつか記載しておきます。 **1.ViewPagerに新しくFragmentを追加(タブが増える形)。** 内容をみるにお試しした方法かと思います。 FragmentPagerAdapter or FragmentStatePagerAdapterでAdapterを作りますが、その際に追加等の更新ができるように実装をすればできます。 FragmentPagerAdapterかFragmentStatePagerAdapterで振る舞いが違うので気をつけてください。 **2.新しくFragmentに差し替える。** Activity側でFragmentManagerによって切替すればよいと思います。 ViewPager部分がActivity側に実装している場合はFragment側に移す必要があります。 **3.新しいActivityを表示させる。** 普通にstartActivityで遷移します。 **4.Dialog(DialogFragment)を表示。** 例えばテーマをDialogWhenLargeにすれば電話ではフルスクリーン、タブレットではちょっと大きいダイアログみたいにもできます。 ご参考になれば幸いです。 なお、support library v25.1あたりからFragmentTransaction#replace等でbugがありますのでFragmentを切り替えるような場合はご注意を。 一応25.3.0で修正とあります。こちらではまだ確認していません。すいません。