Android之viewBinding视图绑定功的使用
在视图绑定在 Android Studio 3.6 Canary 11 及更高版本中可以使用ViewBinding这个新特性,使用方式如下: 1.首先在build.gradle文件的 android 节点下添加viewBinding的启用,如下: android { …….. buildFeatures { v…
阅读全文 »已阅读 526 次在视图绑定在 Android Studio 3.6 Canary 11 及更高版本中可以使用ViewBinding这个新特性,使用方式如下: 1.首先在build.gradle文件的 android 节点下添加viewBinding的启用,如下: android { …….. buildFeatures { v…
阅读全文 »已阅读 526 次在很多时候我们需要将一些统一的基础功能的代码放到一个库中来引用,像很久以前我们都是将一些工具类以jar包的形式封装成我们的工具库,随着时代的发展,出现了一个更高级的形式那就是AAR这种文件格式,它不仅可以把一些类库打到这个包里边,还能将用到的一些资源文件一并打包到AAR中使用,当然我们目前只应用到了Android开发中…
阅读全文 »已阅读 781 次接下来是在openUrl里处理打开的操作,会给出选定文件的本地URL func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any]) -> Bool { if url.i…
阅读全文 »已阅读 1,700 次import UIKit enum AlignType : NSInteger { case left = 0 case center = 1 case right = 2 } class EqualCellSpaceFlowLayout: UICollectionViewFlowLayout { //两个Cell之间…
阅读全文 »已阅读 403 次今天在写一个功能的时候用到了Dictionary 的 grouping by 这个用法,代码先贴出来 import UIKit class AlignFlowLayout: UICollectionViewFlowLayout { required init(itemSize: CGSize = CGSize.zero…
阅读全文 »已阅读 1,139 次今天在做项目的时候遇到一个问题,我写了一个RecyclerView然后里边有EditText,遇到的问题就是在键盘关闭EditText失去焦点的时候,recylerview会自动滚动到顶部,这样的体验肯定不行,所有经过查询资料发现在RecyclerView的最外层View加上如下配置就可以解决: android:foc…
阅读全文 »已阅读 1,583 次今天翻原来写过的代码发现有些看不懂了,比如@escaping这货我就看不太懂了,为什么会在传入一个方法的时候会给闭包加上这这个呢? 就例如如下代码: func createViewModel(pay:@escaping (()->Void),change:@escaping (()->Void)) ->…
阅读全文 »已阅读 2,117 次在Java中Google Gson中使用反序列化如下 Type listType = new TypeToken<List<MyClass>>(){}.getType(); MyClass mc = new Gson().fromJson(result, listType); 对就是这样写,但在…
阅读全文 »已阅读 909 次在iOS中想在不依赖任何ViewController的情况下显示UIAlertController,在适配iOS13之前的写法是如下: public func hhShowViewController(_ animated:Bool,completion: (() -> Void)?) { let popWind…
阅读全文 »已阅读 3,786 次//MARK: – 查找顶层控制器、 /// 获取顶层控制器 根据window func getTopVC() -> (UIViewController?) { var window = UIApplication.shared.keyWindow //是否为当前显示的window if window?.wind…
阅读全文 »已阅读 1,096 次1. Monkey的使用 Monkey是在模拟器或设备环境中运行,因此必须通过shell来启动,可在每个命令前加adb shell或这是进入shell后然后再使用monkey命令。 1.1 Monkey的典型使用 adb shell monkey -p your.package.name -v 500 以上命令参数说明…
阅读全文 »已阅读 1,974 次package com.test.widget; import android.content.Context; import android.util.AttributeSet; import android.widget.ScrollView; import com.qmuiteam.qmui.util.QMUID…
阅读全文 »已阅读 834 次在开发的过程中往往好多第三方库引用了很多我们根本用不到的库,但我们又没有办法去配置清单中手动清除,那么我们可以采用以下方式去排除或者叫删除一下这个权限: <uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” tools:…
阅读全文 »已阅读 679 次val typeFilter = InputFilter { source, start, end, dest, dstart, dend -> val p = Pattern.compile(“[a-zA-Z|\u4e00-\u9fa5]+”) val m = p.matcher(source.toString…
阅读全文 »已阅读 834 次在 AndroidManifest.xml 中加入 android:requestLegacyExternalStorage=”true” 就可以解决,如下 <application android:name=”.App” android:allowBackup=”true” androi…
阅读全文 »已阅读 1,458 次在日常开发中我们往往会遇到这样的需求,就是有两个List需要我们去重并合并,那么我们来研究一下基础类型List的这种操作应该如何实现。有很多种方法我们来研究一下。 比如说我们要处理如下两个列表的合并 List listA = new ArrayList(); listA.add(“a”); listA.add(“b”)…
阅读全文 »已阅读 1,379 次今天写一个东西发现需要设置Toolbar的左侧返回按钮的事件,然后用了如下写法发现并不生效。 mToolbar.setNavigationOnClickListener(v -> { if (mWebView.canGoBack()) { mWebView.goBack(); return; } finish()…
阅读全文 »已阅读 1,690 次protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); textView = (TextView) findViewB…
阅读全文 »已阅读 1,008 次在build.gradle文件添加引用 debugImplementation ‘com.squareup.leakcanary:leakcanary-android:1.6.3’ releaseImplementation ‘com.squareup.leakcanary:leakcanary-android-no-…
阅读全文 »已阅读 1,042 次