1. 前言
这篇给大家带来两个开发中用到的东西,地址如下:
希望大家star一下。
2. 点击空白收起键盘
大家有没有被测试提这种bug,我要点击空白收起键盘!!!其实很简单,代码如下。
private static void setTouchListener(final Activity context){
context.getWindow().getDecorView().setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
if (context.getCurrentFocus() != null) {
imm.hideSoftInputFromWindow(context.getCurrentFocus().getWindowToken(),0);
}else {
imm.hideSoftInputFromWindow((context.findViewById(android.R.id.content)).getWindowToken(),0);
}
return false;
}
});
}
就是给DecorView设置TouchListener,然后在onTouch里面,收起键盘,并返回false。
3. TextView + Tag
效果是这样的。
同样,看效果也不难。大家都知道Span,没错,我们这里用ImageSpan来做。不过,有几点我们需要注意。
- ImageSpan对齐的问题
- 设置行数的情况下,如何处理
3.1 ImageSpan的问题
关于这个问题,网上也有处理,解决办法链接
不过,上面的办法也存在几个问题,暂时没有好的处理办法,主要是适配上有问题,在不同的手机和多行情况下,是存在问题的。我们只能通过调整
int top= drHeight/2 - fontHeight/2;
int bottom=drHeight/2 + fontHeight/2;
部分的代码去调整。希望知道的朋友告知一下。
3.2 设置行数的情况下
设置行数的情况下,我们的tag部分可能显示不出来,我们需要做一下处理。
- 计算完整显示需要的长度(Normal文字的长度+TagView的长度)
- 比较拥有的长度和需要的长度,根据需求做截断处理
我们通过TextPaint测量宽度。具体的代码,大家看代码了吧。
4. 推广
希望大家给个star鼓励一下子。