Блокировка фрагмента после переключения

#android

#Android

Вопрос:

У меня есть запрос о блокировке фрагментов.На самом деле у меня есть три фрагмента в нижней вкладке навигации. Все три фрагмента в основном представляют собой формы ввода, в которых я выбираю значения из edittexts.Однако я хочу, чтобы в приложение была добавлена функция, чтобы при отправке одной формы, т.Е. Когда Один фрагмент отправляет данные, этот фрагмент должен быть заблокирован от переключения пользователя, и пользователь не может вернуться к этому старому фрагменту, и должно отображаться предупреждающее сообщение, отображающее сообщение, которое вы уже отправилиэтот раздел, теперь вы не можете вернуться.Кто-нибудь может подсказать, как сделать это возможным.

например, у меня есть три фрагмента frg1, frg2, frg3, и каждый из них содержит форму для получения данных.У каждого из них есть кнопка отправки, расположенная ниже после формы.После отправки вы автоматически переходите к следующему фрагменту (это уже сделано), но вам нужно позаботиться о том, чтобы вы не могли снова вернуться к старому фрагменту.До сих пор я кодировал часть, в которой вы можете переключиться на другой фрагмент после отправки, но я все еще могу вернуться.Так что в основном мне нужна эта функция, чтобы перестать возвращаться к старому фрагменту.Пожалуйста, помогите мне решить эту проблему.

Ответ №1:

если вы используете viewpager, единственным решением является создание пользовательского ViewPager, подобного этому:

 public class NoScrollViewPager extends ViewPager {

private boolean isPagingEnabled = false;

public NoScrollViewPager(Context context) {
    super(context);
}

public NoScrollViewPager(Context context, AttributeSet attrs) {
    super(context, attrs);
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    return this.isPagingEnabled amp;amp; super.onTouchEvent(event);
}

@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    return this.isPagingEnabled amp;amp; super.onInterceptTouchEvent(event);
}

public void setPagingEnabled(boolean b) {
    this.isPagingEnabled = b;
}
 

С помощью setPagingEnabled() вы сможете блокировать и разблокировать ViewPager

В противном случае, если вы раздуваете фрагмент, используйте replace() вместо add().

Приветствия.

Комментарии:

1. Привет, Panabuntu, я не использую viewpager напрямую. На самом деле я использую навигацию roughhike / bottomtab. Можете ли вы предложить какой-нибудь способ включить это изменение в это

2. Вы можете использовать эту функцию и сделать вкладку НЕВИДИМОЙ или ИСЧЕЗНУТЬ. И пользователь не сможет выбрать эту вкладку. mBottomBar.getTabAtPosition(position).setVisibility(View.GONE); Кстати, вы должны указать в теме, какую стороннюю библиотеку вы используете 🙂