Как открыть фрагмент из окна просмотра - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь создать навигационный ящик с ViewPager, потому что я хочу, чтобы навигационный ящик работал в полноэкранном режиме. Я создал фрагмент и добавил в viewpager. из фрагмента навигации по нажатию кнопки я хочу открыть другой фрагмент. я добавил код, чтобы открыть еще один фрагмент, но приложение вылетает. как мне это сделать. Код моей кнопки

public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
       View v = inflater.inflate(R.layout.tab2, container, false);
       Button btnOpenSlideShow = (Button)v.findViewById(R.id.btnOpenSlideShow);
        btnOpenSlideShow.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               AllFragment allFragment = new AllFragment();
               FragmentManager manager = getFragmentManager();
               manager.beginTransaction().replace(R.id.mainLayout,allFragment,allFragment.getTag())
                       .commit();
           }
       });
return v;
    }
}

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Используйте getSupportFragmentManager()

как FragmentManager manager = getActivity().getSupportFragmentManager();

AllFragment allFragment = new AllFragment();

manager.beginTransaction()
.replace(R.id.frameLayout, allFragment )
.addToBackStack(null)
.attach(myFragment)
.commit();

Надеюсь, это поможет.

0 голосов
/ 12 сентября 2018

вместо getFragmentManager используйте getChildFragmentManager

AllFragment allFragment = new AllFragment();
FragmentManager manager = getChildFragmentManager();
manager.beginTransaction().replace(R.id.mainLayout,allFragment,allFragment.getTag())
                       .commit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...