小问题收集

EditText无法换行 并没有设置singline##

需求:写评论的时候会希望输入法右下角可以直接发送发起评论,
实现 :ecittext增加imeOptions(actionSend)同时需要singleLine才有效

在做动态列表开发的时候 ,出现个奇怪的问题页面切换的时候列表会自动滚动一点,使某个item完全显示,百度后发现是因为item会获取焦点导致的,

页面切换时RecyclerView获得了焦点,RecyclerView的 focusableOnTouchMode属性默认是true,所以页面切换时RecyclerView自动获得焦点就滚动到头部。抢焦点的问题。

  • 1 在item的根布局加上
    android:focusableInTouchMode="true"
    android:focusable="true"
    会导致 在不同item点击的时候 需要点击两次才会触发点击事件 第一次获取焦点
  • 2 在recycleview的最外层父布局添加属性
    android:focusableInTouchMode="true"
    android:focusable="true"
  • 3 在recycleview的最外层布局/或者最外层recycleview(item中的recycleview不行)添加属性
    android:descendantFocusability="blocksDescendants"解决问题
    ###注意加上这个后布局里若有editText会无法获取焦点,则无法弹出输入法
    https://blog.csdn.net/qq_19560943/article/details/77124487
    https://www.zhihu.com/question/48726700
    https://blog.csdn.net/limonzet/article/details/51353634

android:descendantFocusability="blocksDescendants"

该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。
属性的值有三种:
beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点
https://www.cnblogs.com/wangmars/p/3488959.html
https://www.jianshu.com/p/33242e90b8e2

android.support.constraint.ConstraintLayout的forground

android:foreground="?selectableItemBackground"在targetSdkVersion 23以下会无效

限制文本长度同时显示省略号

android:ellipsize="end"
android:maxEms="7"
android:singleLine="true" /android:maxLines="1"

如果要加上android:maxLength那么maxLength的值必须比maxEms大3 才会显示省略号 否则不显示

  • maxWidth=”80dp” 限制TextView最大宽度。必须与layout_width=”wrap_content”搭配使用,当指定layout_width为其他值时,maxWidth会失效。
  • maxLength=”10” 限制TextView最多10个字符数。汉字、英文、数字都算一个字符。maxLength属性会使ellipsize=”end”属性失效。添加了maxLength不再会显示”…”
  • maxEms=”5” 限制TextView的最大宽度为5个大写M的字符宽度。超过就换行(具体字数不太准)

编译的时候出现某主题的资源找不到(颜色)

解决办法是 依赖的support包和编译版本不同
compileSdkVersion 27 对应 support:*:27.+

Androidstudio能正常编译,跑起应用,但是项目中代码找不到R文件,爆红

原因是Androidstudio版本低于项目配置的gradle版本(Androidstudio使用的最高gradle版本就是Androidstudio的版本)
Androidstudio 版本为3.2.1,项目中配置的gradle版本为3.3.0会导致R文件找不到

你可能感兴趣的:(小问题收集)