0.日志打印会有缺失记得避免copy时错误
1.recycleView 无法刷新 用runonuithread 更新
2.点击事件没有触发 被上一层的ui遮挡 只是没显示出来
3.BottomSheetDialog 可仿制斗音评论弹窗
4.启动白屏问题
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">#FFF</item>
<item name="android:windowDisablePreview">true</item>
5.chales 配置https证书后需在proxy->ssl Proxying settings include :443 " , ":"等
6.java8 常用
// 获取对应的平方数
List<Integer> squaresList = numbers.stream().map( i -> i*i).distinct().collect(Collectors.toList());
System.out.println("first: " + (squaresList.get(0))); // 9 4 49 25 distinct去重复
List<String> stringss = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
List<String> filtered = stringss.stream().filter(string -> string.equals("") || string.equals("jkl")).collect(Collectors.toList());
System.out.println("条件筛选列表: " + filtered);
//筛选列表: [abc, bc, efg, abcd, jkl]
String mergedString = stringss.stream().filter(string -> !string.isEmpty()).collect(Collectors.joining(", "));
System.out.println("合并字符串: " + mergedString);
//合并字符串: abc, bc, efg, abcd, jkl
List<Integer> integers = Arrays.asList(1,55,555);
integers.forEach(integer -> {});
List<User> userList = new ArrayList<>();
userList.add(new User("a", "xiaoming",12)); // getuserid 第一个参数
userList.add(new User("b", "xiaomings",13));
userList.add(new User("d", "xiaoming",15));
userList.add(new User("a", "xiaoming",14));
System.out.println("利用Collectors.toMap去重:");
//利用Collectors.toMap去重
userList.stream()
//或者这样写 Collectors.toMap(m -> m.getUserId(),
.collect(Collectors.toMap(User::getUserAge,
Function.identity(), (oldValue, newValue) -> newValue))
.values()
.forEach(System.out::println); //打印
// 利用Collectors.toCollection和 treeset去重
userList.stream()
.collect(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(User::getUserId))))
.forEach(System.out::println);
objectObjectMap.forEach((key, value) -> {
System.out.println("key "+ key);
System.out.println("value "+ value);
});
for (Map.Entry<Object, Object> map: objectObjectMap.entrySet()) {
}
7.kotlin
// ?. 代表着如果该类型为空的话就返回null不做后续的操作,如果不为空的话才会去访问对应的方法或者属性
//!!. 代表着如果该类型为空的话就抛出NullPointerException,如果不为空就去访问对应的方法或者属性,
// 通过let语句,在?.let之后,如果为空不会有任何操作,只有在非空的时候才会执行let之后的操作 .返回值是函数里面最后一行,或者指定return。
// ?: 与 ?. 相反 符号会在符号左边为空的情况才会进行下面的处理,不为空则不会有任何操作
Kotlin系列之let、with、run、apply、also函数的使用_Mikyou的专栏-CSDN博客_kotlin with
8. dart :
// 如果需要在编译时就固定变量的值,可以使用 const 类型变量
// 如果 Const 变量是类级别的,需要标记为 static const
// 使用with关键字折叠其他类以实现代码重用。当属性和方法重复时,以当前类为准。
// 如果想使用和Java接口一样的功能可以使用Mixins和implements两种方式
9. android studio xml java 文件乱码问题解决
.删除C:\Users\你的用户文件夹\.AndroidStudio3.6\system\caches下的所有文件(3.6是我的AndroidStudio版本)
10.connect to maven.google.com:443 问题处理 maven {url 'https://dl.google.com/dl/android/maven2/'} 替换google() (
网上说最新版本的Android Studio (Canary 9) + Gradle 已经使用 google()来指代 google 仓库了,会自动解析到https://dl.google.com/dl/android/maven2/。)
allprojects {
repositories {
maven {url 'https://dl.google.com/dl/android/maven2/'}
maven {url 'https://www.jitpack.io'}
jcenter()
}
}
11.IO Andorid 地址
// write reader 字符流 // inputStream outPutStream 字节流 // 1、Environment.getDataDirectory() = /data //这个方法是获取内部存储的根路径 //2、getFilesDir().getAbsolutePath() = /data/user/0/packname/files //这个方法是获取某个应用在内部存储中的files路径 //3、getCacheDir().getAbsolutePath() = /data/user/0/packname/cache //这个方法是获取某个应用在内部存储中的cache路径 //4、getDir(“myFile”, MODE_PRIVATE).getAbsolutePath() = /data/user/0/packname/app_myFile //这个方法是获取某个应用在内部存储中的自定义路径 //方法2,3,4的路径中都带有包名,说明他们是属于某个应用 //………………………………………………………………………………………… //5、Environment.getExternalStorageDirectory().getAbsolutePath() = /storage/emulated/0 //这个方法是获取外部存储的根路径 //6、Environment.getExternalStoragePublicDirectory(“”).getAbsolutePath() = /storage/emulated/0 //这个方法是获取外部存储的根路径 //7、getExternalFilesDir(“”).getAbsolutePath() = /storage/emulated/0/Android/data/packname/files //这个方法是获取某个应用在外部存储中的files路径 //8、getExternalCacheDir().getAbsolutePath() = /storage/emulated/0/Android/data/packname/cache //这个方法是获取某个应用在外部存储中的cache路径 // Environment.getDownloadCacheDirectory() = /cache // Environment.getRootDirectory() = /system // 1.内部存储 随应用卸载而删除 并且空间有限 用Context 获取 val filesDir = filesDir.absolutePath val cacheDir = cacheDir.absolutePath val dataDire = Environment.getDataDirectory() // 2.外部存储 // /storage/emulated/0/Android/data/com.kakebang.movingrescue/files/mounted/zxp/pdf val externalFileDir = getExternalFilesDir(MEDIA_MOUNTED)?.absolutePath val externalCacheDir = externalCacheDir?.absolutePath
12. databinding 用kotlin 是需要添加
apply plugin: 'kotlin-kapt'
kapt {
generateStubs = true
}
才能使用BR
13module 依赖想给主项目使用需要把module中的所有需要使用的依赖 implementation 更改为 api 就可以了!
14. 防止底部布局被手机底部自带布局遮挡可在布局中添加
android:fitsSystemWindows="true"