質問編集履歴

1

MainActivityを編集しました

2020/04/27 00:44

投稿

s.sawai
s.sawai

スコア7

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- 現在、android用のアプリを作りたいと思っていて、Bottom navigationで画面を切り替え、その切り替え後の画面によっては画面上部に設置したTabによってさらに画面を切り替えられるようにしたいと思っています。そこでBottom navigationで切り替え画面上にTabを配置すればいいと思って作り始めたのですが、Android studio作れるBottom navigation Activityで切り替える先の画面がFragmentになってしまい、どうすればTabも実装できるかわからず困っています。
4
-
5
- 現在の認識として、TabもBottom navigationもどの画面を表示するかの操作をするもの(マスター?のようなもの)はActivityでしかできないという認識なのですがその認識であっているかについてもご教授いただけますと幸いです。
3
+ 現在、android用のアプリを作りたいと思っていて、Bottom navigationで画面を切り替え、その切り替え後の画面によっては画面上部に設置したTabによってさらに画面を切り替えられるようにしたいと思っています。ただ、ビルドは通るのですがエミュレータ上では即強制終了となってしまい原因がわからず困っています。
6
4
 
7
5
 
8
6
 
@@ -42,33 +40,179 @@
42
40
 
43
41
  NavigationUI.setupWithNavController(navView, navController);
44
42
 
43
+ //以下、Tab
44
+
45
+ SectionsPagerAdapter sectionsPagerAdapter = new SectionsPagerAdapter(this, getSupportFragmentManager());
46
+
47
+ ViewPager viewPager = findViewById(R.id.view_pager);
48
+
49
+ viewPager.setAdapter(sectionsPagerAdapter);
50
+
51
+ TabLayout tabs = findViewById(R.id.tabs);
52
+
53
+ tabs.setupWithViewPager(viewPager);
54
+
55
+ FloatingActionButton fab = findViewById(R.id.fab);
56
+
57
+
58
+
59
+ fab.setOnClickListener(new View.OnClickListener() {
60
+
61
+ @Override
62
+
63
+ public void onClick(View view) {
64
+
65
+ Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
66
+
67
+ .setAction("Action", null).show();
68
+
69
+ }
70
+
71
+ });
72
+
73
+
74
+
45
75
  }
46
76
 
47
77
 
48
78
 
49
79
  }
50
80
 
51
-
52
-
53
81
  ```
54
82
 
55
-
56
-
57
- ### 試したこと
83
+ ```Java
58
-
59
-
60
-
61
- Bottom navigationによって呼び出されるFragmentの1つに
84
+
62
-
63
- @Override
64
-
65
- public void startActivity(Intent intent) {
66
-
67
- super.startActivity(intent);
85
+ //activity_main.xml
86
+
68
-
87
+ <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
88
+
89
+ xmlns:app="http://schemas.android.com/apk/res-auto"
90
+
91
+ android:id="@+id/container"
92
+
93
+ android:layout_width="match_parent"
94
+
95
+ android:layout_height="match_parent"
96
+
97
+ android:paddingTop="?attr/actionBarSize">
98
+
99
+
100
+
101
+ <com.google.android.material.bottomnavigation.BottomNavigationView
102
+
103
+ android:id="@+id/nav_view"
104
+
105
+ android:layout_width="0dp"
106
+
107
+ android:layout_height="wrap_content"
108
+
109
+ android:layout_marginStart="0dp"
110
+
111
+ android:layout_marginEnd="0dp"
112
+
113
+ android:background="?android:attr/windowBackground"
114
+
115
+ app:layout_constraintBottom_toBottomOf="parent"
116
+
117
+ app:layout_constraintLeft_toLeftOf="parent"
118
+
119
+ app:layout_constraintRight_toRightOf="parent"
120
+
121
+ app:menu="@menu/bottom_nav_menu" />
122
+
123
+
124
+
125
+ <androidx.fragment.app.FragmentContainerView
126
+
127
+ android:id="@+id/nav_host_fragment"
128
+
129
+ android:name="androidx.navigation.fragment.NavHostFragment"
130
+
131
+ android:layout_width="match_parent"
132
+
133
+ android:layout_height="match_parent"
134
+
69
- }
135
+ app:defaultNavHost="true"
136
+
70
-
137
+ app:layout_constraintBottom_toTopOf="@id/nav_view"
138
+
139
+ app:layout_constraintLeft_toLeftOf="parent"
140
+
141
+ app:layout_constraintRight_toRightOf="parent"
142
+
71
- を書き、Tabを設置してあるActivityを呼び出そうと思ったのですがうまくいきませんでした。
143
+ app:layout_constraintTop_toTopOf="parent"
144
+
145
+ app:navGraph="@navigation/mobile_navigation" />
146
+
147
+
148
+
149
+ <com.google.android.material.appbar.AppBarLayout
150
+
151
+ android:layout_width="match_parent"
152
+
153
+ android:layout_height="wrap_content"
154
+
155
+ app:layout_constraintTop_toTopOf="parent"
156
+
157
+ android:theme="@style/AppTheme.AppBarOverlay">
158
+
159
+
160
+
161
+ <TextView
162
+
163
+ android:id="@+id/title"
164
+
165
+ android:layout_width="wrap_content"
166
+
167
+ android:layout_height="wrap_content"
168
+
169
+ android:gravity="center"
170
+
171
+ android:minHeight="?actionBarSize"
172
+
173
+ android:padding="@dimen/appbar_padding"
174
+
175
+ android:text="@string/app_name"
176
+
177
+ android:textAppearance="@style/TextAppearance.Widget.AppCompat.Toolbar.Title" />
178
+
179
+
180
+
181
+ <com.google.android.material.tabs.TabLayout
182
+
183
+ android:id="@+id/tabs"
184
+
185
+ android:layout_width="match_parent"
186
+
187
+ android:layout_height="wrap_content"
188
+
189
+ android:background="?attr/colorPrimary" />
190
+
191
+ </com.google.android.material.appbar.AppBarLayout>
192
+
193
+
194
+
195
+ <androidx.viewpager.widget.ViewPager
196
+
197
+ android:id="@+id/view_pager"
198
+
199
+ android:layout_width="match_parent"
200
+
201
+ android:layout_height="match_parent"
202
+
203
+ app:layout_behavior="@string/appbar_scrolling_view_behavior" />
204
+
205
+
206
+
207
+ ```
208
+
209
+
210
+
211
+ ### 追加情報(何かの判断材料になれば)
212
+
213
+ MainActivityの「//以下、Tab」と記載してある場所から下のものを追加してから今の状態になっています。
214
+
215
+
72
216
 
73
217
 
74
218