我有一个关于锁定片段的查询。实际上我在底部的标签导航中有三个片段。 所有这三个片段基本上都是输入形式,我在其中从edittexts中选择值。但是我想在应用程序中添加一个功能,这样当我提交一个表单时,即当一个片段提交数据时,那个片段应该是锁定用户切换,用户无法返回到旧片段,应显示警告消息,显示您已提交此部分的消息,现在您无法返回。任何人都可以建议如何使其成为可能。
e.g。我有三个片段frg1,frg2,frg3,每个片段都包含一个表单来获取数据。每个片段都有一个提交按钮位于表格后面的下面。一旦你提交你自动转到下一个片段(这已经完成)但是你需要注意不要再回到原来的碎片了。到目前为止我已经编写了部分,你可以在提交后切换到另一个片段,但我仍然可以回去。所以基本上我需要停止这个功能回到旧片段。请帮我解决这个问题。
答案 0 :(得分: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 && super.onTouchEvent(event);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
return this.isPagingEnabled && super.onInterceptTouchEvent(event);
}
public void setPagingEnabled(boolean b) {
this.isPagingEnabled = b;
}
使用setPagingEnabled(),您将能够锁定和解锁viewPager
否则,如果您正在膨胀片段,请使用replace()而不是add()。
干杯。