#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">