2016-08-23 67 views
0

後避免片段重新加載我使用片段來顯示回收站視圖中的Vehicle列表。 每當用戶點擊車輛時,它會在另一個片段 中顯示其詳細信息,但是當我使用後退按鈕獲取其詳細信息後,我會在車輛列表片段上回滾,然後像第一次載入車輛列表片段。 我在回收視圖中使用了更多的負載。 這就是爲什麼每當用戶滾動更多,如果他想看到車輛的細節,然後回來的名單上重新加載像第一次和用戶獲得第一個項目回...如何在onBackPressed Android

車輛列表中的Recycler視圖滾動監聽器Fragment

rvVehicleList.addOnScrollListener(new EndlessRecyclerViewScrollListener((LinearLayoutManager) rvVehicleList.getLayoutManager()) { 
     @Override 
     public void onLoadMore(int page, int totalItemsCount) { 
      if (!vehicleSearchResponseModel.getData().get_links().getNext().equals("")) { 
       pageNo++; 
       searchMoreVehicle(pageNo); 
      } 
     } 
    }); 

回收站視圖的點擊來自適配器車輛信息片段

holder.llMainView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      FragmentManager fragmentManager = ((FragmentActivity) context).getSupportFragmentManager(); 
      FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 

      Bundle bundle = new Bundle(); 
      bundle.putSerializable("vehicleInfo", vehicleSearchPagerList.get(position)); 

      VehicleAdInfoFragment vehicleAdInfoFragment = new VehicleAdInfoFragment(); 
      vehicleAdInfoFragment.setArguments(bundle); 
      fragmentTransaction.replace(R.id.frContainer, vehicleAdInfoFragment); 
      fragmentTransaction.addToBackStack(vehicleAdInfoFragment.getTag()); 
      fragmentTransaction.commit(); 
     } 
    }); 
+0

如何關閉詳細信息屏幕並在onResume方法上編寫了一些功能? –

+0

不,我不寫任何代碼在車輛列表片段的onResume方法 –

+0

如何關閉細節屏幕? –

回答

0

你可以嘗試這樣的事情在您的車輛名單片段:

@Override 
public void onPause(){ 
    super.onPause(); 
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity()); 
    SharedPreferences.Editor editor = preferences.edit(); 
    mCurrentIndex = ((LinearLayoutManager) rvVehicleList.getLayoutManager()).findFirstVisibleItemPosition(); 
    editor.putInt("current_position", mCurrentIndex); 
    editor.apply(); 
} 

@Override 
public void onResume(){ 
    super.onResume(); 
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity()); 
    mCurrentIndex = preferences.getInt("current_position", 0); 
    rvVehicleList.getLayoutManager().scrollToPosition(mCurrentIndex); 
} 
+0

這不是一個正確的方式...如果我使用這種方法,那麼我用在recyclerview更加負載,所以如果用戶滾動多次,然後他看到車輛細節,然後回到列表片段,它只加載第一頁數據,然後如何設置第三頁位置在回收站中只有第一頁數據? –

+0

我想你應該保存在onPause()的頁碼,然後將其加載回onResume()並顯示適當的頁面 – Fitz

+0

假設我每頁有3個結果,用戶滾動3次並獲得9個結果,然後他得到9個細節項目,如果我存儲的位置,回來然後首先需要執行3頁的數據,然後我可以設置位置9th回收視圖,即使我已經加載該數據,仍然沒有關閉片段... –