Невозможно очистить вид внутри viewpager

I have an item say» bill » in Navigation Drawer, When I click on a bill I have open a Fragmentsay Fragment_A, inside Fragment_AI have one Viewpagerand tab layout.

Внутри view pagerу меня два Fragmentssay Fragment_1and Fragment_2.

ВнутриFragment_1, у меня есть изображение фильтра на вершине(вActionbar), нажав на эту кнопку Я дал возможность выбрать фильтр.

Проблема в том, что когда я нажимаю первый раз на элемент ящика (счет), он работает нормально, но во второй раз вид Fragment_1не очищается.

// I have written this code inside Fragment_A

     @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            View view= inflater.inflate(R.layout.fragment_all_bill_, container, false);
            tabLayout = (TabLayout) view.findViewById(R.id.tab_layout);

            tabLayout.addTab(tabLayout.newTab().setText("Bill"));
            tabLayout.addTab(tabLayout.newTab().setText("Mybill"));    
            tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
            tabLayout.setSelectedTabIndicatorColor(getActivity().getResources().getColor(R.color.white));
            pager = (ViewPager) view.findViewById(R.id.pager);

            ViewPagerAdapter adapter=new ViewPagerAdapter(getActivity().getSupportFragmentManager());
            pager.setAdapter(adapter);

            pager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));

            tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener()
            {
                @Override
                public void onTabSelected(TabLayout.Tab tab)
                {
                    pager.setCurrentItem(tab.getPosition());
                }

                @Override
                public void onTabUnselected(TabLayout.Tab tab) {

                }

                @Override
                public void onTabReselected(TabLayout.Tab tab) {

                }
            });

            return view;

// This is my adapter class
public class ViewPagerAdapter extends FragmentStatePagerAdapter
{
    public ViewPagerAdapter(FragmentManager fm)
    {
        super(fm);
    }

    @Override
    public Fragment getItem(int position)
    {
        switch (position)
        {
            case 0:

                return new Bills_Fragment();
            case 1:
                return new MyBill_Fragment();

                 }
        return null;
    }

    @Override
    public int getCount()
    {
        return 2;
    }

    public int getItemPosition(Object object)
    {
        Log.d("position===","case2noone");
        return POSITION_NONE;
    }

}

Пожалуйста предложите меня.

1 ответ

  1. Используя это


    .notifyDataSetChanged()


    Вы можете изменить все данные и перезагрузить данные в вашем viewpager.
    Для уничтожения элемента viewpager используйте этот метод в адаптер viewpager

     @Override 
               public void destroyItem(View collection, int position, Object view) {
                       ((ViewPager) collection).removeView((View) view);  }