Начнем с вашего вопроса:
Как правильно разместить мои действия в Tutorial's Bottom Navigation?
Вы не будете размещать свои действия в нижней навигации.
У вас будет один Activity
, который будет рисовать макет вашего экрана. Во-вторых, у вас будет количество Fragment
, которые будут представлять некоторые части вашего экрана.
Сколько Fragment
х? Столько, сколько вариантов нижней навигации.
Возьмите приложение Youtube в качестве примера.
Весь экран представляет собой Activity
, основной вид деятельности Youtube. Как вы можете видеть пользователь нажал Подписки в нижней навигации , поэтому MainActivity вызвал SubscriptionsFragment
, чтобы нарисовать часть экрана с подписками (весь макет, кроме ActionBar вверху и нижняя навигация внизу.
Если пользователь выбирает Домой в нижней навигационной панели, тогда MainActivity
заменит ту часть экрана, где SubscriptionsFragment
рисует свой макет, макетом HomeFragment
. И то же самое произойдет с другими параметрами нижней навигационной панели Youtube.
Итак, чтобы уточнить. Здесь только одно занятие . MainActivity
. Не четыре . Это действие дает команду 4 фрагментам, чтобы нарисовать 4 основные части экрана (домашняя часть с HomeFragment
, трендовая часть с TrendingFragment
, подписная часть с SubscriptionFragment
и, наконец, библиотечная часть с LibraryFragment
.
Из вашего последнего комментария:
Я должен поместить два фрагмента кода, которые я выложил выше, в один большой
класс
Нет, ты не обязан. Нет необходимости создавать один файл, например MainActivity.java (где определен ваш MainActivity
), а затем определять классы Fragment
внутри того же файла.
Вы хотите отобразить 4 экрана, используя нижнюю навигацию, верно? Создайте файл для своей деятельности и четыре отдельных файла, по одному на Fragment
.
Пример:
Ваш первый файл, SelectFriends.java, где определен фрагмент SelectFriends, как вы опубликовали выше ...
public class SelectFriends extends Fragment {
public SelectFriends () {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_SelectFriends , container, false);
}
}
Еще три отдельных файла, как этот, по одному на фрагмент.
И, наконец, ваша деятельность, как вы уже писали выше.
public class MainActivity extends AppCompatActivity{
@Override
public void onCreate(Bundle savedInstanceState){
// ... some code here
}
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.navigation_item1:
..
// Here the activity figured out that the first item of the bottom navigation
// was clicked, so it calls the support fragment manager to display a fragment
// inside the container view
getSupportFragmentManager().beginTransaction()
.setCustomAnimations(R.anim.fade_in, R.anim.fade_out)
.replace(R.id.container, SelectFriends).commit();
return true;
case R.id.navigation_item2:
getSupportFragmentManager().beginTransaction()
.setCustomAnimations(R.anim.fade_in, R.anim.fade_out)
.replace(R.id.container, StartFood).commit();
return true;
}
return false;
}
}
Изменить: Прочитайте Окончательное руководство по нижней навигации на Android