2017-01-16 遇到的一点小问题
学着自定义Behavior来实现一些滑动效果,发现类似文章很多,都看看就差不多可以弄些简单的了。
http://www.jianshu.com/p/8c92d0a1e591
http://www.jianshu.com/p/82d18b0d18f4
http://www.jianshu.com/p/f7989a2a3ec2#
这些都介绍得差不多了,后面两个也有demo可以参考。
软键盘上出现搜索两个字,在layout里的EditText
写上android:imeOptions="actionSearch"
,然后在Activity里为edit设置监听就能使用了。
edit.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
f();
return false;
}
});
然后,这样会有问题,f()方法会调用两次,之前竟然都没注意到。第一次执行的actionId == EditorInfo.IME_ACTION_SEARCH
,第二次是actionId == EditorInfo.IME_ACTION_UNSPECIFIED
。看了源码@return Return true if you have consumed the action, else false.
。好吧,需要return true 去消耗这个动作。这样改了就没问题了。当然,如果很多地方用,不方便改这个,就需要判断if(actionId == EditorInfo.IME_ACTION_SEARCH){ }
。别地方用的android:imeOptions="actionDone"
并不会有这个问题,具体哪些会,懒得试。
网友评论