I have an item say» bill » in Navigation Drawer
, When I click on a bill I have open a Fragment
say Fragment_A
, inside Fragment_A
I have one Viewpager
and tab layout
.
Внутри view pager
у меня два Fragments
say Fragment_1
and 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;
}
}
Пожалуйста предложите меня.
Используя это
Вы можете изменить все данные и перезагрузить данные в вашем viewpager.
Для уничтожения элемента viewpager используйте этот метод в адаптер viewpager