Android学习
文章平均质量分 59
shine56
惟存粹与热爱不可辜负
展开
-
ScrollView嵌套Edittext滑动冲突
情景EditText 文字高度 高于 控件高度 时,正常来说是可以上下滚动EditText中的文字的。当Edittext嵌套ScrollView在里面时发现无法滚动文字。原因查看源码发现ScrollView会拦截滑动事件,致使事件无法传递到EditText。public boolean onInterceptTouchEvent(MotionEvent ev) { final int action = ev.getAction(); if ((a原创 2021-02-03 00:27:51 · 208 阅读 · 0 评论 -
Android事件分发机制小结
基本知识看完这篇文章:链接得到得小结:事件传递的三个主体Activity、ViewGroup、View他们三个的嵌套关系一般是这样:但是还要明白的是:ViewGroup当然可以嵌套ViewGroup,即ViewGroup也可以是另一个ViewGroup的子View。ViewGroup其实是继承于View,是View的子类。事件分发机制相关三个经典函数dispatchTouchEvent():分发函数onInterceptTouchEvent():拦截函数onTouchEv原创 2020-12-08 21:47:59 · 1615 阅读 · 5 评论 -
Android-实现图文混排编辑
RichTextXRichTextX一个帮助开发者实现Android图文混排编辑和显示的库。添加依赖implementation 'com.shine56.richtextx:richtextx:1.0.3-beta'在布局文件中像添加EditText一样在布局文件中文件中添加RichEditText<com.shine56.richtextx.view.RichEditText android:id="@+id/rich_edit_text" android:textS原创 2020-12-03 13:28:20 · 1048 阅读 · 0 评论 -
解决“如何动态控制点击Edittext弹起/禁用软键盘”的问题
遇到一个需求,点击EditText中的图片时不唤起软键盘,点击文字则唤起软键盘。查了挺多博客,不知道时问题简单还是怎么样,很多种方法都没能解决我的问题。然后去看一下TextView(EditText继承于TextView)中的 onTouchEvent() 函数,仔细察看就能发现点击EditText之所以会弹出软键盘关键的代码。查看源码发现 红框是点击edittext会弹出软键盘的关键代码,而 蓝框的条件都是可以控制的。也就是说,我们动态控制其中一个条件就行了。...原创 2020-12-02 21:27:30 · 392 阅读 · 0 评论 -
Android实现编辑和显示富文本——Span方式
大概效果编辑显示思路首先要知道两个知识点(以下内容都基于这两个知识点):EditText/TextView可以通过添加Span的方式显示富文本。有些博客已经讲的很好了:传送门EditText/TextView可以解析并显示Html格式的文本:传送门知道这两点后,我大概整理了两个思路。我的想法是:如果你仅仅想实现图文混排,那就选方式2,因为思路简单,只需用到插入Span这个知识就行了。但当想实现较复杂的富文本时,比如给文本中某一小段实现字号变大,同时加粗,同原创 2020-07-30 21:24:26 · 4481 阅读 · 1 评论 -
利用bintray-release插件上传库到Bintray报错HTTP/1.1 404 Not Found [message:Repo ‘maven‘ was not found]问题
利用bintray-release插件上传库到Bintray,在执行命令gradlew clean build bintrayUpload -PbintrayUser=XXX -PbintrayKey=XXX -PdryRun=false报错:XXXX...HTTP/1.1 404 Not Found [message:Repo 'maven' was not found]原因:Bintray-release默认帮我们设置为了maven,但我们Bintray帐号中却没有创建名为maven的仓库原创 2020-07-30 18:08:13 · 241 阅读 · 1 评论 -
关于ViewModel的一个坑
在Activity回调onDestory()时,不能获取viewModel。通过Log发现在Activity回调onDestory()之前,viewModel已经执行clear()原创 2020-07-17 11:47:21 · 788 阅读 · 2 评论 -
使用lambda封装可复用的RecyclerView.Adapter
现在App大部分都不止一个列表,而每用一次都写一个适配器继承RecyclerView.Adapter重写它的方法。多次使用列表时,这项工作就变得重复冗余。我们可以使用lambda来封装一个可复用的Adapter。class MyAdapter<T>( @LayoutRes private val layoutId: Int) : RecyclerView.Adapter<BaseAdapter.MyHolder>() { private lateinit原创 2020-07-10 12:05:50 · 240 阅读 · 0 评论 -
关于kotlin这门语言
最近使用kotlin写一个项目,记录一下。一、高级函数很香如果有这样一段逻辑(Java)fun getA(): A { //相同的逻辑 val i = 0 val j = 1 //不同的逻辑 val a = A() a.setI(i) a.setJ(j) return a}fun getB(): B { val i = 0 val j = 1 val b = B() b.setI(i)原创 2020-07-01 15:27:36 · 117 阅读 · 0 评论 -
kotlin学习笔记之协程封装回调
协程是什么?我的理解是它是在单线程的状态下,模拟多线程的效果,去处理一些异步执行的逻辑,实现一些并发的任务,的一个东西。暂时把它理解为一个轻量级别的线程。使用笔记这里只写一些归纳。具体介绍和使用方法不会展开讲。需要具体使用方法:传送门我的简单使用归纳如下一、先分清楚这几种协程作用域构建器runBlocking{} 它的特点是会一直阻塞当前线程,直到该作用域下所用逻辑执行完毕。GlobalScope.launch{} 它的特点创建的是顶层协程,没处理好会造成没必要的资源消耗。比如你原创 2020-06-28 01:40:26 · 3052 阅读 · 0 评论 -
Android修改状态栏
效果图这里的处理都是Android5.0以上的。修改状态栏颜色Window window = activity.getWindow();window.setStatusBarColor(Color.MAGENTA);隐藏状态栏法一Window window = getWindow();View decorView = window.getDecorView();deco...原创 2019-10-04 17:03:20 · 1091 阅读 · 0 评论 -
Android自定义View学习笔记
为什么要自定义View?系统配置的View满足不了我们的需求,我们需要针对业务制作一个自己的View。怎么自定义View?步骤是啥?我是小白啥不懂呀,怎么去自定义一个自己的view呢?下面跟着我一步步先定义一个正方形的view试试看。在values目录下新建一个firs.xml文件,编写内容如下:<?xml version="1.0" encoding="utf-8"?>...原创 2019-09-15 21:39:19 · 172 阅读 · 0 评论 -
四大组件生命周期之服务Service
https://www.jianshu.com/p/cc25fbb5c0b3https://www.jianshu.com/p/d4deea06566a原创 2019-08-26 17:57:51 · 194 阅读 · 0 评论 -
四大组件生命周期之Activity
ixn原创 2019-07-29 13:07:02 · 126 阅读 · 0 评论