Это простой вопрос. Я использую BottomNavigationView (bnv) для моего приложения и имеет 5 меню. Каждое меню делает вид на активность в верхней части BNV. Каждое меню получает информацию с сервера. Однако каждый раз, когда я меняю представление с помощью bnv, оно само обновляется, потому что onCreateView вызывается снова. Я хотел бы прекратить это, потому что это займет большое количество сервера , когда он будет обращаться к нему каждый раз, когда изменяется bnv.
Есть ли способ контролировать это, чтобы обновлять только тогда, когда информация, предоставленная представлению, должна быть изменена ??
Я просто добавляю свой код bnv на всякий случай.
Моя часть по созданию.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
backHandler = new BackPressedHandler(this);
dialog = new ProgressDialog(MainActivity.this);
toolbar = findViewById(R.id.main_toolBar);
bottomNavView = findViewById(R.id.bottomNavView);
setSupportActionBar(toolbar);
manager = getSupportFragmentManager();
mainAccident = new Main_AccidentFragment();
mainCargo = new Main_CargoFragment();
mainCarManager = new Main_CarManagerFragment();
mainCommunity = new Main_CommunityFragment();
mainMyCar = new Main_MyCarFragment();
manager.beginTransaction().add(R.id.frameMainActivity, mainMyCar).commit();
bottomNavView.setSelectedItemId(R.id.bottomBtnMyCar);
bottomNavView.setOnNavigationItemSelectedListener(listener);
new ReceiveMainAsyncTask().execute();
}
И часть слушателя bnv.
private BottomNavigationView.OnNavigationItemSelectedListener listener = new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
int id = menuItem.getItemId();
FragmentTransaction transaction = manager.beginTransaction();
transaction.addToBackStack(null);
switch (id) {
case R.id.bottomBtnMyCar:
transaction.replace(R.id.frameMainActivity, mainMyCar).commit();
break;
case R.id.bottomBtnCarManager:
transaction.replace(R.id.frameMainActivity, mainCarManager).commit();
break;
case R.id.bottomBtnCargo:
transaction.replace(R.id.frameMainActivity, mainCargo).commit();
break;
case R.id.bottomBtnCommunity:
transaction.replace(R.id.frameMainActivity, mainCommunity).commit();
break;
case R.id.bottomBtnAccident:
transaction.replace(R.id.frameMainActivity, mainAccident).commit();
break;
}
return true;
}
};