回答編集履歴
1
タブに実際にフラグメントを切り替えるコードを追加
answer
CHANGED
@@ -49,4 +49,46 @@
|
|
49
49
|
としますと
|
50
50
|

|
51
51
|
Home にだけタブが出るようになります.
|
52
|
-
後は Home でタブを選択した時に対応するクラグメントを fragment_home 内に表示するようにするだけに思いますが, 如何なのでしょうか.
|
52
|
+
後は Home でタブを選択した時に対応するクラグメントを fragment_home 内に表示するようにするだけに思いますが, 如何なのでしょうか.
|
53
|
+
|
54
|
+
#追記
|
55
|
+
例えばフラグメント3つ(HomeFragmentTab1/2/3)をタブで切り替えるとしますと, 以下のようになるかと思います.
|
56
|
+
```java
|
57
|
+
public class HomeFragment extends Fragment {
|
58
|
+
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
59
|
+
return inflater.inflate(R.layout.fragment_home, container, false);
|
60
|
+
}
|
61
|
+
@Override
|
62
|
+
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
63
|
+
HomePagerAdapter adapter = new HomePagerAdapter(getChildFragmentManager());
|
64
|
+
ViewPager viewPager = view.findViewById(R.id.pager);
|
65
|
+
viewPager.setAdapter(adapter);
|
66
|
+
|
67
|
+
TabLayout tabLayout = view.findViewById(R.id.tab_layout);
|
68
|
+
tabLayout.setupWithViewPager(viewPager);
|
69
|
+
}
|
70
|
+
|
71
|
+
public static class HomePagerAdapter extends FragmentPagerAdapter {
|
72
|
+
HomePagerAdapter(FragmentManager fm) {
|
73
|
+
super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
|
74
|
+
}
|
75
|
+
@Override
|
76
|
+
public int getCount() {
|
77
|
+
return 3;
|
78
|
+
}
|
79
|
+
@Override
|
80
|
+
public Fragment getItem(int i) {
|
81
|
+
switch(i) {
|
82
|
+
case 0: return new HomeFragmentTab1();
|
83
|
+
case 1: return new HomeFragmentTab2();
|
84
|
+
case 2: return new HomeFragmentTab3();
|
85
|
+
}
|
86
|
+
return null;
|
87
|
+
}
|
88
|
+
@Override
|
89
|
+
public CharSequence getPageTitle(int position) {
|
90
|
+
return "tab " + (position + 1);
|
91
|
+
}
|
92
|
+
}
|
93
|
+
}
|
94
|
+
```
|