Прекратить обновление с помощью нижней навигационной панели - PullRequest
0 голосов
/ 08 июня 2019

Это простой вопрос. Я использую 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;

    }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...