少年乘勇气,百战过乌孙。这篇文章主要讲述Android:BottomSheetDialog中的多行文本EditText相关的知识,希望能为你提供帮助。
我有一个底部对话框,并在布局中存在EditText。 EditText是多行,最大行是3.我把:
commentET.setMovementMethod(new ScrollingMovementMethod());
commentET.setScroller(new Scroller(bottomSheetBlock.getContext()));
commentET.setVerticalScrollBarEnabled(true);
【Android(BottomSheetDialog中的多行文本EditText)】但是当用户将开始垂直滚动EditText文本时,BottomSheetBehavior拦截事件和EditText将不会垂直滚动。
文章图片
有谁知道如何解决这个问题?
答案这是一个简单的方法。
yourEditTextInsideBottomSheet.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
v.getParent().requestDisallowInterceptTouchEvent(true);
switch (event.getAction() &
MotionEvent.ACTION_MASK){
case MotionEvent.ACTION_UP:
v.getParent().requestDisallowInterceptTouchEvent(false);
break;
}
return false;
}
});
另一答案我用以下方法解决了这个问题:
- 我创建自定义工作围绕底部表单行为扩展本机android
BottomSheetBehavior
:public class WABottomSheetBehavior< V extends View> extends BottomSheetBehavior< V> { private boolean mAllowUserDragging = true; public WABottomSheetBehavior() { super(); }public WABottomSheetBehavior(Context context, AttributeSet attrs) { super(context, attrs); }public void setAllowUserDragging(boolean allowUserDragging) { mAllowUserDragging = allowUserDragging; }@Override public boolean onInterceptTouchEvent(CoordinatorLayout parent, V child, MotionEvent event) { if (!mAllowUserDragging) { return false; } return super.onInterceptTouchEvent(parent, child, event); } }
- 然后设置
EditText
的触摸事件,当用户触摸EditText
区域时,我将通过调用方法setAllowUserDragging
禁用处理事件:commentET.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if (v.getId() == R.id.commentET) { botSheetBehavior.setAllowUserDragging(false); return false; } return true; } });
推荐阅读
- 将Android EditText格式化为HH(MM:SS)
- android.widget.RelativeLayout无法强制转换为android.widget.EditText
- android -Edit文本背景在TextInputLayout错误上变红
- 使用Thales nShield HSM的PKCS11interop c#wrapper库导出/导入RSA密钥对()
- 运行测试后销毁App组件
- 带有自定义图标的applescript显示对话框
- 无法添加窗口 - 令牌android.os.BinderProxy@42824无效;你的活动在运行吗()
- 如何在Symfony 3中使用SnappyBundle(wkhtmltopdf)从HTML创建PDF
- PHPMyAdmin MySQL错误(列”mycolumnname”不能为FULLTEXT索引的一部分)