我正在努力应对一件(似乎是)小事。在我的应用程序中,我有一个包含两个EditText
字段的活动。
我希望其中一个是普通字段(etNormal),另一个(etButton)的行为更像按钮,所以当你触摸它时,不会显示键盘,而是打开滑动抽屉。如果滑动抽屉打开并且您将按正常的edittext滑动抽屉将隐藏。
如果单击/触摸了 etButton 打开滑动抽屉,我尝试添加OnClickListener
和OnTouchListener
(不是在相同的尝试中)条件,如果没有则关闭。
结果很奇怪。当它是 OnTouchListener 测试时,它更像是切换,所以当我按下一个抽屉时打开另一个抽屉。当谈到 OnClickListener 时,我需要按每个 edtitext 两次才能完成操作。
并在我使用的 etButton 中隐藏键盘setInputType(InputType.TYPE_NULL);
。我也尝试过setEnabled(false);
,但后来我什至无法点击/触摸它。当前使用的方法的一个缺陷是当我将点击从 etNormal 更改为 etButton 时,键盘仍然显示并且它没有隐藏。
那么,谁能告诉我我能做些什么来实现我的目标?
编辑:
我已经删除了您当前的建议并修改了一些我的代码,但它仍然无法正常工作。
这是我分配 OnTouchListener 的一部分:
OnTouchListener touchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent ev) {
if(v==etButton && ev.getAction()==MotionEvent.ACTION_DOWN) {
slidingDrawer.animateOpen();
}else {
slidingDrawer.animateClose();
}
return false;
}
};
etNormal1.setOnTouchListener(touchListener);
etNormal2.setOnTouchListener(touchListener);
etButton.setOnTouchListener(touchListener);
同样在 XML 布局文件中的 etButton 声明中,我有:
android:focusable="false"
但是现在,在 etButton touch 上什么也没有发生(只有滑动抽屉在打开时才会隐藏),当触摸 etNormal1 或 2 时,滑动抽屉会根据第一个出现或隐藏(换句话说,toggel)。
任何想法,这里有什么问题?