Stetho 是 Facebook 提供的一个面向 Android App 的调试工具。在配置好 Stetho 之后,我们可以在 Chrome 中对特定应用进行调试,功能包括:查看数据库与 SharedPerferences、查看网络请求、查看当前视图布局(hierarchy view)等等,甚至可以通过 JavaScript 调用 Android App 中的部分命令。
Android Annotation
IntDef
通过 @IntDef
标注可以限定一个方法的输入输出内容。
枚举类型可以很好的限定值的范围,但是有性能问题(Enum 的性能问题在 Android Developer 中有提到,在 胡凯 - Android性能优化典范 - 第3季 中的第4小节中有详细解释)。在很多情况下,可以通过自定义的 @IntDef
和 @StringDef
来替代枚举类型。而且用起来也比在枚举类型里面实现 valueOf 等方法要简洁少许。
Android Studio Can't Build After Change Default Code Page of Windows Console to UTF-8
Set onClickListener for EditText in ActionBar's SearchView
要为 ActionBar 上的 SearchView 的 EditText 设置 onClickListener,可以考虑通过递归的方式为 SearchView 的所有子 View / ViewGroup 设置 onClickListener。代码如下:
Preference Crash When getSummary() Contains '%'
当 ListPreference 中执行 getSummary 的时候碰到了字符 ‘%’ 时会导致应用 crash。
解决方式
重写 ListPreference 的 getSummary 方法,避免在遇到 ‘%’ 的时候 crash。
Integer.getInteger()
NestedScrollView
bookmarks
Hexo guide
ListView in ScrollView
本篇内容已过时
Update 2015.04.06
发现了新的方式,实现的效果更好,代码更简练而且 bug 更少。请查阅 NestedScrollView
场景描述
对于 Scroll 嵌套 Scroll 这种情况来说,最理想的情况是避免进行这种布局设计。但有时候并非太容易做。比如下图:
其中,Header 需要能够随着 ListView 的滚动离开屏幕,但 Tab 会留在界面上面。而且通过点击 Tab,需要可以在不同界面中进行切换。
如果不需要可以切换的 Tab 效果,那么我们可以将 Header 与 Tab 都作为 ListView 的 HeaderView 来实现。但是如果要能够实现 Tab 切换的话,显然我们不能将 Header 对于每个 Tab 中的 ListView 都作为 HeaderView。因此只能将 Tab 与下面的 ListView 视作是同级的控件,然后在外面嵌套一层 ScrollView。