iOS 控件遮盖问题
在已经设置好布局的StoryBoard上面,添加一些新的空间,然后点击某个按钮弹窗的时候,发现新添加的空间还是显示在最上层
解决办法: 在Storyboard的列表中,越往下的控件,在屏幕显示就会越在上面,只需要把新加的控件拖动到上面即可
Android-在Activity中使用Menu
在Activity中使用Menu资源文件 首先在 res 目录下新建一个menu文件夹,右击res目录–>New–>Android Resource Directory,输入文件夹名menu,在弹出的菜单中Directory Name输入Menu,Resource type 选择Menu,然后在此文件夹下新建一个 main.xml的菜单文件,右击menu–>New–>Menu Resource File。
最后添加 Item的 id和title即可.
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"><item android:id="@+id/add_item" android:title="@string/add" /><item andr ...
ConstraintLayout-constraintDimensionRatio属性
h和w参数的解释
这里我们还需要解释一下app:layout_constraintDimensionRatio的值里面的h和w是什么意思。一般来说,加上h的意思就是,h之后的比例是以w为基础去设置h,即h = w * ratio。反之,写上w的意思是,w = h / ratio (因为 ratio = w / h 代表宽高比)。
Android 11 分区存储
场景从微信打开KML文件,选择自家开发的App打开,发现能够读取读取文件路径,但是在操作的时候显示错误
java.io.FileNotFoundException: /storage/emulated/0/Android/data/com.tencent.mm/MicroMsg/Download/xxx.kml: open failed: EACCES (Permission denied)
其中AS工程已经正确配置存储权限,并且application已经配置android:requestLegacyExternalStorage="true"
因项目在Android10上能够正确运行,但是在Android 11及以上有异常,猜想是因为Android 11做了一些限制。
因此采用另外一种方法:先把真实路径从获取到的Uri对象中解析出来,然后把文件拷贝一份到App目录下面,再对这个文件进行解析
/** * 从Uri获取真实路径 * @param context * @param uri * @return */ pub ...
Android优秀开源第三方库
Log类Timber https://github.com/JakeWharton/timber
implementation 'com.jakewharton.timber:timber:5.0.1'
RxJava3+Retrofit简单使用
目标 从百度翻译定时轮询翻译API
依赖implementation 'io.reactivex.rxjava3:rxjava:3.1.2'implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'implementation 'com.squareup.retrofit2:retrofit:2.9.0'// 衔接 Retrofit & RxJava// retrofit适配器implementation 'com.squareup.retrofit2:adapter-rxjava3:2.9.0'// Gson解析implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
权限:<uses-permission android:name="android.permission.INTERNET"/>
https请求配置:<a ...
Android Studio 和Lombok插件不兼容问题
最近安装了高版本的 AS,然后在Plugins里已经搜索不到lombok这个插件了
在https://plugins.jetbrains.com/plugin/6317-lombok/versions下载离线的安装包
然后报错
Plugin 'Lombok' (version '0.34.1-2019.1') is not compatible with the current version of the IDE, because it requires build 191.* or older but the current build is AI-211.7628.21
解决办法:
将下载的插件解压,然后拷贝里面的jar包到Android Studio的安装目录 D:\Program Files\Android\Android Studio\plugins下面,重启AS即可
Dagger基本使用
依赖annotationProcessor 'com.google.dagger:dagger-compiler:2.41'implementation 'com.squareup.retrofit2:retrofit:2.9.0'
一、快速实现1、构造方法使用Inject注public class User { public String name; @Inject //使用Inject注解在构造方法上,就是告知dagger可以通过构造方法来创建获取到User的实例 public User(){ this.name = "Lee"; }}
2、创建ApplicationComponent@Componentpublic interface ApplicationComponent { void inject(MainActivity mainActivity); //选择需要在哪里注入}
3、在MainActivi ...
Xcode使用技巧(ImageLiteral、ColorLiteral)
选择图片:
Image Literal
颜色:
Color Literal
Postman截取Chrome网络请求
1.安装Chrome插件安装 Postman Interceptor 插件 https://chrome.google.com/webstore/detail/postman-interceptor/aicmkgpgakddgnaphhhpliifpcfhicfo?hl=zh
2.安装 Interceptor Bridge 按照 https://learning.postman.com/docs/sending-requests/capturing-request-data/interceptor/ 设置安装
Mac OS下需要先安装Node.js环境,没有的话,会自动下载node.js的安装包
打开Requests 和Cookies
在Requests 里面选择 Source 为Interceptor,打开Capture Requests,然后选择请求保存的位置
在Cookies里面,打开Capture Cookie,然后在Domains里面可以过滤信息
重复请求测试 在Postman左侧找到已经抓取到的请求,然后添加到Save Request,将请求添加到Col ...