#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); Кстати, вы должны указать в теме, какую стороннюю библиотеку вы используете