2016-12-26 42 views
0

明确的说法我有一个项目说“法案”在Navigation Drawer,当我在一个账单点击我已经打开了FragmentFragment_A,里面Fragment_A我有一个Viewpagertab layout无法里面viewpager

Inside view pager我有两个FragmentsFragment_1Fragment_2

Inside 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; 
    } 

} 

请给我建议。

+0

'视图Fragment_1的是没有得到cleared'手段? –

+0

http://imgur.com/a/Ke1k3看到这个链接 – gautam

+0

我在这里上载这个图片,第一次当我登录付费后,视图正在变化,但第二次它不起作用。 – gautam

回答

0

使用这种


.notifyDataSetChanged()


你可以改变所有的数据和viewpager中重新载入数据。 销毁viewpager项目使用此方法为viewpager适配器

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

我应该在我的viewpager适配器类 – gautam

+0

中写入.notifyDataSetChanged()已经使用.notifyDataSetChanged() – gautam