Фрагменты складываются друг на друга - PullRequest
0 голосов
/ 16 декабря 2018

У меня проблема с фрагментами.В моем файле XML у меня уже есть фрагмент, я хочу одним нажатием кнопки заменить его другим фрагментом.Таким образом, с моим кодом я могу заменить фрагмент на тот, который я хочу, по нажатию кнопки, но первый фрагмент не исчезнет, ​​так что я все еще могу видеть его под моим вторым фрагментом, код такой:

public class MainActivity extends AppCompatActivity {
FragmentManager fragmentManager;
Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

      button = findViewById(R.id.button);
      button.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {

              fragmentManager = getSupportFragmentManager();

              FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
              fragmentTransaction.replace(R.id.fragment,new BlankFragment2());
              fragmentTransaction.addToBackStack(null).commit();
          }
      });
    }    
}

Ответы [ 3 ]

0 голосов
/ 16 декабря 2018

Установите цвет фона корневого макета второго фрагмента и поместите кликабельный и фокусируемый true в xml-файл.Это приведет к исчезновению первого фрагмента, а также отключит щелчки первого фрагмента при отображении другого фрагмента.

0 голосов
/ 16 декабря 2018

правильная реализация addToBackStack поможет в этом случае, и многие другие addToBackStack принимают аргумент, который называется записью задачи TAG. Чтобы выполнить транзакцию позже, вы можете использовать этот тег, чтобы удалить задний стек до точки

Для большего понимания прочитайте https://medium.com/@bherbst/managing-the-fragment-back-stack-373e87e4ff62

0 голосов
/ 16 декабря 2018

Удалить addToBackStack(null).

Сохраняет фрагмент и сохраняет его прикрепленным, поэтому при вызове popBackStack() верхний фрагмент удаляется и заменяется предыдущим.

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