我正在开发一个应用程序,用户可以在edittexts中输入内容并通过滑动屏幕进入下一个视图。滑动内容由viewpager处理。
我想做的是以下内容:
用户应该只能在填写完所有edittexts时滑动。目前我的所有edittex都有一个TextWatcher,一旦填充每个字段,它就会将布尔值设置为“true”。如果是,我可以启用viewpager,如果不是,我可以禁用它。
缺少的是,如果字段为空,则用户不会收到反馈,视图根本不会滑动,但用户可能不知道原因。我需要的是显示一个textmessage,如果他试图刷页面,说明至少有一个edittext仍然是空的。
我想过将viewpager添加到手势检测器 - 这是个好主意吗?如果是,我将如何以最佳方式实施?
答案 0 :(得分:2)
您可以通过显示第一个不完整的字段来通知用户。已有一个很好的方法:EditText.setError()
。
editText.setError("Field is required");
editText.requestFocus();
如果要检测滑动发生的时间,可以使用ViewPager.OnPageChangeListener
回调接口:
abstract void onPageScrollStateChanged(int state)
// Called when the scroll state changes.
abstract void onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
// This method will be invoked when the current page is scrolled, either as part of a
// programmatically initiated smooth scroll or a user initiated touch scroll.
abstract void onPageSelected(int position)
// This method will be invoked when a new page becomes selected.
方法onPageScrolled
应该是你所追求的。