Фрагменты перекрываются при размещении в нижней части навигационного окна

#android #android-fragments

#Android #android-фрагменты

Вопрос:

У меня есть основное действие, которое реализует нижний навигационный вид с 5 фрагментами в нем. Например, когда я нажимаю кнопку поиска в первом фрагменте, а затем отображается поиск по фрагменту. Но когда я перехожу к другому нижнему виду навигации (фрагмент c) и нажимаю обратно на телефон, это вызывает перекрытие между фрагментом A и фрагментом C.

Это код между фрагментом A и поиском по фрагменту

  FragmentManager fm = getFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    searchHerbs searchHerbs = new searchHerbs();
    searchHerbs.setArguments(arguments);
    ft.replace(R.id.main_frame, searchHerbs);
    ft.addToBackStack(null);
    ft.commit();
  

это код транзакции фрагмента между фрагментом нижнего навигационного представления

 FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
    fragmentTransaction.replace(R.id.main_frame,fragment);
    fragmentTransaction.commit();
  

Если я отслеживаю код. проблема в том, :
1. Когда я выхожу из поиска фрагментов, addbackstack отсутствует, я хочу добавить его в onDestroyView, но я не знаю как.
2. Я перешел к поиску фрагмента из фрагмента A, используя addbackstack (null).
3. когда я нажимаю другой фрагмент из нижнего режима навигации (фрагмент c) и нажимаю назад. это приводит к появлению всплывающего фрагмента для фрагментации A.

Я уже пытался добавить addbackstack (null) в транзакцию фрагмента в нижнем навигационном представлении. Проблема решена, но возникает другая проблема, подобная: 1. это вызывает пустой фрагмент, когда я нажимаю back stack перед закрытием приложений. 2. активная навигация снизу не меняется при нажатии кнопки назад, даже если фрагмент был изменен.

перекрывающееся изображение фрагмента

Ответ №1:

Я знаю трюк, но его работа продолжается.В новом фрагменте используйте фон корневых макетов белого цвета и сделайте его интерактивным, как

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
                     xmlns:app="http://schemas.android.com/apk/res-auto"
                     xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_margin="5dp"
                     android:padding="5dp"
                     android:background="@color/white"
                     android:clickable="true"
                     app:cardCornerRadius="10dp"
                     app:contentPadding="5dp">