Как добавить тег Fragment во вновь созданный экземпляр? - PullRequest
0 голосов
/ 26 мая 2019

Как добавить тег во вновь созданный экземпляр?

case 0:           
 return FragmentNotifications.newInstance(notifications, mCurrentTime);

Новый экземпляр:

    public static FragmentNotifications 
                 newInstance(String notificationsArray, long currentTime){

        FragmentNotifications fragment = new FragmentNotifications();
        return fragment;
    }

Как назначить имя фрагменту, созданному с помощью viewpager?

@Override
    public Fragment getItem(int position) {
        switch (position) {
            case 0:
                return 
             FragmentNotifications.newInstance(notifications, mCurrentTime);
            case 1:
                return FragmentMessages.newInstance(messages, 
              mCurrentTime);
            case 2:
                return new FragmentProfile();
            default:
                return null;

        }

    }

1 Ответ

0 голосов
/ 29 мая 2019

Ответ и кредиты человеку, который нашел этот метод:

Как получить существующие фрагменты при использовании FragmentPagerAdapter

Я получил имя тега, которое автоматически генерируетсяandroid api

@Override
public Object instantiateItem(ViewGroup container, int position) {
Fragment createdFragment = (Fragment) super.instantiateItem(container, position);
// get the tags set by FragmentPagerAdapter
switch (position) {
    case 0:
        String firstTag = createdFragment.getTag();
        break;
    case 1:
        String secondTag = createdFragment.getTag();
        break;
}
// ... save the tags somewhere so you can reference them later
    return createdFragment;
}

Убедитесь, что вы используете getChildFragmentManager для ссылки на него, в противном случае он возвращает ноль. Я потратил 2 часа, пытаясь выяснить, почему findFragmentByTag возвращал ноль

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