Как назвать деятельность вместо фрагмента в Tablayout? - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть приложение для Android, в котором у меня есть 3 вкладки в tablayout.Я просто хочу, чтобы первая вкладка открывала новое действие, а не фрагмент, потому что у меня будут новые вкладки в этом новом действии.Каково лучшее решение для этого?

Я пытался придумать с помощью линейного макета «поддельную вкладку», но проблема в том, что он никогда не будет иметь тот же размер, что и другие вкладки.

Есть ли способ сделать это, как это?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    viewPager = findViewById(R.id.pager);
    tabLayout = findViewById(R.id.tabLayout);

    adapter = new TabAdapter(getSupportFragmentManager());
    adapter.addFragment(new ProfileActivity(), "Profile");
    adapter.addFragment(new SwipeFragment(), "Meet");
    adapter.addFragment(new FriendsFragment(), "Friends");

    viewPager.setAdapter(adapter);
    tabLayout.setupWithViewPager(viewPager);

    tabLayout.getTabAt(0).setIcon(tabIcons[0]);
    tabLayout.getTabAt(1).setIcon(tabIcons[1]);
    tabLayout.getTabAt(2).setIcon(tabIcons[2]);
}

этот метод addFragment не принимает Activity, так что строка содержит ошибку.У кого-то есть идеи, как мне этого добиться?Во всяком случае, в котором я могу заставить вкладку вызывать активность вместо фрагмента

1 Ответ

0 голосов
/ 22 сентября 2019

Следует избегать открытия новых действий при нажатии вкладок, но если вам необходимо это сделать, просто полностью удалите вкладки и используйте линейный макет с несколькими кнопками или относительными макетами.Создайте такое же количество действий, что и кнопки, и включите вкладку, например, линейный макет, в каждое действие и просто перейдите по клику к новому действию.

Если вы хотите, чтобы одна вкладка, например макет, открывала действие, а другие действовали как фрагменты, то разделитекод между отдельным действием для фрагментированных вкладок и оставшимися действиями для каждой вкладки действий.И включите одну и ту же вкладку, как макет в каждом действии.Если пользователь нажимает кнопку, предназначенную для перехода к активности, если пользователь нажимает кнопку, предназначенную для фрагмента, просто сдвиньте фрагмент.

К счастью, добавление фрагментов в каждое действие не увеличит ваш код, поскольку будет добавлен тот же фрагмент.во всех необходимых действиях.

Я знаю, что это сложно понять, но то, что ты хочешь сделать, тоже сложно;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...