2016-12-26 97 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