概述
首先要说明的是,我不可能,也不打算把所有快捷键都列出来。写这篇博文的目的是列出来那些我经常使用的,而且我认为可以显著的提高工作效率的快捷键。所以多少会有些主观色彩
Anyway,老规矩,如果大家有任何疑问、意见或者建议,请在下方留言评论
截图
macOS 系统内置了截图功能,每次截图都会发出声音,当然这个声音可以关,后面会提到。基础操作有以下四种(快捷键也可以自定义,后面也会提到):
select * from learn
学习,学习,学以致用
ViewFlipper是安卓自带的控件,很多人可能很少知道这个控件,这个控件很简单,也很好理解。
从源码可以看出,其实ViewFlipper间接的继承了FrameLayout,也可以说ViewFlipper其实就是个FrameLayout,只不过在内部封装了动画实现和Handler实现一个循环而已。
很经常当我们动态创建某些View时,需要通过获取他们的width和height来确定别的view的布局,但是在onCreate()获取view的width和height会得到0.view.getWidth()和view.getHeight()为0的根本原因是控件还没有完成绘制,你必须等待系统将绘制完View时,才能获得。这种情况当你需要使用动态布局(使用wrap_content或match_parent)就会出现。一般来讲在Activity.onCreate(…)、onResume()方法中都没有办法获取到View的实际宽高。所以,我们必须用一种变通的方法,等到View绘制完成后去获取width和Height。下面有一些可行的解决方案。
ViewTreeObserver监听很多不同的界面绘制事件。一般来说OnGlobalLayoutListener就是可以让我们获得到view的width和height的地方.下面onGlobalLayout内的代码会在View完成Layout过程后调用。
1 | view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { |
但是要注意这个方法在每次有些view的Layout发生变化的时候被调用(比如某个View被设置为Invisible),所以在得到你想要的宽高后,记得移除onGlobleLayoutListener:
https://xclient.info/s/omni-plan.html
最近工作当中,对项目交付的要求越来越高了。
这意味着不能像之前那样,做完方案就丢给开发,然后到了指定时间再收获了。
那么怎么掌握项目全部的进度呢,用万能的excel画格子吗?
画格子
当然在产品经理面前,Excel无所不能,上到画原型,下到数据库管理。但是在面对一个较大的项目的时候,仍然会有一些问题:
这些问题的答案就是 omniplan。
Genymotion模拟器不能安装APK的原因
官网给出的解释:Genymotion模拟器使用的是x86架构,在第三方市场上的应用有部分不采用x86这么一种架构,所以在编译的时候不通过,报“APP not installed”,可以下载Genymotion提供的ARM转换工具包,将应用市场中的ARM架构的apk转换成Genymotion可以编译的x86架构;
An error occured while deploying the file.
This probably means that the app contains ARM native code and your Genymotion device cannot run ARM instructions. You should either build your native code to x86 or install an ARM translation tool in your device.
部署文件时出错。
这可能意味着应用程序包含本地ARM代码和你的genymotion设备无法运行ARM指令。你可以建立你的原生代码的x86或在您的设备上安装一个臂的翻译工具。
我在运行Genymotion虚拟机进行android应用调试的时候,无法用Powershell(cmd)进入adb shell,显示的界面是这样的:
导致无法正常进行adb调试,找了很多方法都没用,后来修改了genymotion中的settings 中的ADB选项中的SDK路径,保持跟你当前应用的eclipse或者android studio中的SDK库一致,然后问题就解决了;