Есть ли способ закрыть всплывающее окно при нажатии других фрагментов действия.? - PullRequest
0 голосов
/ 16 апреля 2019

Я создал всплывающее окно в Fragment-A. Я хотел бы получить его близко, если пользователь нажимает другой фрагмент (фрагмент B или фрагмент C). Прошу вас посоветовать, как этого можно достичь.

Ниже приведен мой код для создания фрагмента

private void setupViewPager(ViewPager viewPager) {
    Adapter adapter = new Adapter(getSupportFragmentManager());
    adapter.addFragment(new FragmentA(), "FragA");
    adapter.addFragment(new FragmentB, "FragB");
    adapter.addFragment(new FragmentC, "FragC");
    viewPager.setAdapter(adapter);
    }
static class Adapter extends FragmentPagerAdapter {
    private final List<Fragment> mFragments = new ArrayList<>();
    private final List<String> mFragmentTitles = new ArrayList<>();

    public Adapter(FragmentManager fm) {
        super(fm);
    }

    public void addFragment(Fragment fragment, String title) {
        mFragments.add(fragment);
        mFragmentTitles.add(title);
    }

    @Override
    public Fragment getItem(int position) {
        return mFragments.get(position);
    }

    @Override
    public int getCount() {
        return mFragments.size();
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return mFragmentTitles.get(position);
    }

Код для создания PoPup

        View popupView = getLayoutInflater().inflate(R.layout.popup, 
    null);
        popupWindow = new PopupWindow(popupView, 
   ViewGroup.LayoutParams.WRAP_CONTENT, 
   ViewGroup.LayoutParams.WRAP_CONTENT, false);
        popupWindow.setBackgroundDrawable(new ColorDrawable(Color.WHITE));
        popupWindow.showAsDropDown(popupView, mEditText.getScrollX(), 
   mEditText.getScrollY()-50);
        recyclerView = (RecyclerView) 
   popupView.findViewById(R.id.popuprelativelayout);
        linearLayoutManager = new LinearLayoutManager(getContext());
        recyclerView.setLayoutManager(linearLayoutManager);
        adapterString = new AdapterString(popupWindow,userfollowlist, 
   getContext(), mEditText,isWinOpen);
        recyclerView.setAdapter(adapterString);
            isWinOpen = true;
}

Попытка использовать метод ниже, но изменение во фрагменте не чувствуется.

@Override
public void onHiddenChanged(boolean hidden) {
    if(!hidden)
    {
        if(isWinOpen) {
            popupWindow.dismiss();
            isWinOpen = false;
        }
    }
      }

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

Заранее спасибо за помощь !!!!!

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