【Android】ConstraintLayout中RecyclerView 的底部数据显示不全以及覆盖其他View 指定底部约束(app:layout_constraintBottom_toBottomOf=“parent”)的同时,还要设置高度为0dp(android:layout_height=“0dp”),基本完美解决超出遮挡、不从顶部排列、显示不全的问题。将显示不全的View高度设置为 android:layout_height=“0dp” 代表填充上下约束包围的区域。...
Flutter中如何判断当前运行模式是Debug还是Release 说这个之前,我们先来回顾一下 Flutter的四种运行模式:Debug、Release、Profile和test ,在实际开发中,我们往往需要根据当前运行模式的不同,选择不同的操作,比如在Debug模式启用Log、在生产模式关闭Log。 如果你是一名Android开发者,肯定对于这个不陌生,在Android中,有一个根据gradle配置自动生成的BuildConfig类来判断当前的运行模式。同样的,在Flutter里面也是有方法来判断的,我们需要用到 dart.vm.product 环境标识位,具体使用
「FlutterBug」FlutterBoost启动黑屏处理(升级空安全版本) 升级空安全后的FlutterBoost 在应用启动第一次打开Flutter 页面时会出现短暂的闪一下黑屏,目前查看Fluttboost 在github 上的 issue 只能我们自己先去处理。官方没有修复(可能会热启动引擎解决)我们自己解决的话方案就是<meta-data android:name="flutterEmbedding" android:value="2" /><meta-data android:name="io.flutter.app
Flutter 应用内调试工具(字节&贝壳) 开源地址贝壳 Flutter 调试工具 -FDB它来了!Flutter 应用内调试工具 UME 开源啦开源地址GitHub 地址:https://github.com/LianjiaTech/flutter_fdb_packageGitHub 地址:https://github.com/bytedance/flutter_ume1.前言目前 Flutter 在贝壳的使用量越来越高,业务中 Flutter 页面达到 600+,甚至在某些业务线 Flutter 页面占比达到 70%。这种状况下我们
Flutter 应用内调试工具(字节&贝壳) 开源地址贝壳 Flutter 调试工具 -FDB它来了!Flutter 应用内调试工具 UME 开源啦开源地址GitHub 地址:https://github.com/LianjiaTech/flutter_fdb_packageGitHub 地址:https://github.com/bytedance/flutter_ume1.前言目前 Flutter 在贝壳的使用量越来越高,业务中 Flutter 页面达到 600+,甚至在某些业务线 Flutter 页面占比达到 70%。这种状况下我们
TabLayout设置Tab间距 1、设置 app:tabMaxWidth="200dp" app:tabMinWidth="20dp"2、设置 app:tabPaddingStart="12dp" app:tabPaddingEnd="8dp"3、完整设置如下 <android.support.design.widget.TabLayout xmlns:app="http://schemas.android.com/apk/res-auto" android:id=
HTTP状态码304与ETag详解 我们经常会看到请求地址中状态存在304,如果客户端(浏览器)发送的是一个条件验证请求,则web服务器可能会返回304响应,这就表明了客户端中所请求资源的缓存仍然是有效的,也就是说该资源从上次缓存到现在没有被修改过,浏览器会自动识别并读取缓存中的文件来显示。在进行条件请求时,一般请求头会带上 If-Modified-Since、 If-None-Match,这两个值分别对应响应头 Last-Modified、 ETag 返回的值
Kotlin 符号( ‘?.‘ ‘?:‘ ‘!!‘ ‘as?‘ ‘?‘ ) Kotlin-复合符号【?.】【?:】【!!'】【as?】【?】【::】如果你也热衷技术欢迎加群一起进步:230274309 。 一起分享,一起进步!少划水,多晒干货!!欢迎大家!!!(进群潜水者勿加)
浏览器加载HTML页面唤起手机中的App最全攻略 Android通过Scheme协议打开APP界面web页通过浏览器打开js scheme 打开手机app的方法Android 中 配置scheme,APP 中获取 Scheme中的参数值如果你也热衷技术欢迎加群一起进步:230274309 。 一起分享,一起进步!少划水,多晒干货!!欢迎大家!!!(进群潜水者勿加)
Android可以响应局部、部分点击事件的View、ImageView 有些场景,需要一张图片部分可点击,这样就需要自己提前确定可响应点击范围。这里以ImageView 为例,讲一下部分可点击事件。看下效果:我这里一张顶部图片,有个输入框元素,如果元素要一个个叠加的话,会比麻烦,直接用一张图片做背景就比较省事,只要处理下 只响应输入框这一部分的点击效果。首先布局文件中: <com.xxx.widget.PartClickImageView android:clickable="true" android:id="@+id/
Hybrid App实现原理 现在市面上App,迭代变更比较频繁,为了满足业务需求,基本上都采用了Hybrid混编,来实现业务的快速上下线。H5灵活开发的特点和线上热更新的机制是非常适合业务频繁迭代的,我们需要一套完整的Hybrid技术架构方案来充分利用 H5 强大的开发和迭代能力,又能赋予 H5 强大的底层能力和用户体验,同时能复用现有的成熟 Native组件。
Gradle dependencies 解决项目依赖冲突 1.查看版本号$ gradle -v编译打包检查依赖并编译打包gradle build 编译跳过测试 gradle build -x test 编译打包tgz包,跳过测试类gradle releaseTarGz -x signArchives -x test 这里注意的是 gradle build 命令把debug、release环境的包都打出来,如果正式发布只需要打Release的包,该怎么办呢,下面介绍一个很有用的命令 assemble, 如gradle assembl
Android App 启动时立即崩溃无法debug的解决方法 方法一在android开发者选项里,选择调试应用的列表里选择要调试的应用,然后把后面的等待调试器开关打开即可。方法二我们可以首先通过adb shell am set-debug-app -w ,然后再启动进程,系统会弹出一个Dialog提醒Application正在Waiting For Debugger。实际上这个时候应用程序进程已经fork出来了,只不过是阻塞在ActivityThread.handleBindApplication()方法里面,它通过调用Debug.waitForDebugg
Android 状态栏样式设置 通过setStatusBarBgColor方法直接设置颜色即可,状态栏字体颜色会根据背景颜色进行改变。只支持6.0及以上版本。public void setStatusBarBgColor(@ColorInt int color) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { // 设置状态栏底色颜色 getWindow().addFlags(WindowManager.LayoutParams
andorid 查看 Activity任务栈 在实际开发过程中会碰到一些问题,需要通过分析应用的任务栈信息,比如查看栈顶activity,不同启动模式 launchMode下Activity任务栈情况。Android提供一个很强大的adb shell指令进行查看。1.在终端或者Android Studio中的Terminal里敲入如下命令:adb shell dumpsys activity可以看到终端输出一系列信息,因为输出信息比较长,只列出以下几个类别信息,具体某个类别下的详细信息可以在终端输入后查看:ACTIVITY MANAGER P
Android开发助手2020 Mac安装Jadx反编译工具https://github.com/skylot/jadx.gitAndroid 混淆文件资源分类整理之二:将混淆文件拆分成更小粒度的混淆文件https://blog.csdn.net/ouyang_peng/article/details/106871878/Android 混淆通用配置 支持 androidx#下面代码中的路径配置,你要修改成与你相对应的路径#引入依赖包rt.jar(jdk路径)(注意:如在makeJar的时候提示指定了两次,可以将其注释掉)
Kotlin高阶函数 forEach 便利fun main(args: Array<String>) { var list = listOf(1, 2, 3, 4, 5, 6) list.forEach(::println) val newList = arrayListOf<String>() --->1,2,3,4,5,6 list.forEach { newList.add((it * 2).toString()) --->2,4,6
Chrome json 插件 JSONView-for-Chrome 今天想到一个好方法,以 jsonView插件为例分享一下。1、打开 https://github.com ;2、搜索 jsonView 链接:https://github.com/gildas-lormeau/JSONView-for-Chrome3、选择需要的插件(我是选这个gildas-lormeau/JSONView-for-Chrome);4、点击【Download Zip】,插件下载完成,解压缩到相应目录(D:\Download\JSONView-for-Chrome-master);5
安卓使用getResources().getIdentifier()动态的根据一个资源名获得到对应的资源id 近期在看安卓动画机制的时候看到一段代码 AnimationDrawable animDrawable=new AnimationDrawable();for(int i=0;i<5;i++){ int id=getResurces().getIdentifier("common_loading_"+i,"drawable",getPackageName()); Drawable drawable=getResources().getDrawable(id); animDrawable.