杨辉的个人博客

记录编程新的体会.

(译)Data Binding 指南

| Comments

翻译自 http://developer.android.com/intl/zh-cn/tools/data-binding/guide.html

这个文档用于解释如何使用 Data Binding Library 编写声明式的布局,减少应用中逻辑以及布局所需要的“胶水代码”。

Data Binding Library 提供了灵活性与通用性 - 它是一个 support library,可以在 Android 2.1(API level 7+)以上的平台使用。

为了使用 data binding,gradle plugin的版本必须是 1.5.0-alpha1以上。

Fragment Recreate(2)

| Comments

除了常见的 Activity - Fragment 模式,还有 Activity - ViewPager - Fragment 模式,这种情况又略有不同。

有时候调试 activity recreate 的时候,会发现 ViewPager 变成一片空白,没有 Fragment 显示出来。该有的 Fragment recreate 哪里去了?

Fragment Recreate(1)

| Comments

  • 说明

    一般都是用v4的Fragment实现,可以有getChildFragmentManager()的支持,这里以 v4 版本为例。

  • 命名

    FragmentActivity 源码中的变量命名其实很乱,比如一个 FragmentManagerImpl 的实例,叫做 mFragments,后面需要注意。

Terminal 代理方案

| Comments

由于墙越建越高,现在想要访问国外的服务越来越难了。在购买了自己的VPS之后,可以基于各种方案建立对应的翻墙方案:

Why Is ListView’s HeaderView/FooterView setVisibility(View.GONE) Not Working?

| Comments

使用 ListView 的时候,根据需求需要动态将HeaderView/FooterView隐藏掉,这时你会发现 setVisibility(View.GONE) 根本没有效果,两个折衷的方案是:

  • 动态将HeaderView/FooterView remove掉,要显示的时候再add回去。
  • 在HeaderView/FooterView外面包一个Container ViewGroup(例如 FrameLayout),再把这个Container作为HeaderView/FooterView add 到ListView 中。

以上两个方案都能实现隐藏 HeaderView/FooterView 的效果。下面我从源码介绍以下为何 View.GONE 不生效,以及为何以上 workaround 能够生效的原因。

Android Developer Tools(开发人员工具)

| Comments

在做Android开发的过程中,不可避免地需要使用到自带的android developer tools(开发人员工具),这是一个强大的开发辅助工具,随着android版本的更新,developer tools也集成了越来越多十分方便的调试功能,这里以android 4.4.4版本为例子,说说其中一部分我常用工具的使用(恕我才疏学浅没能全部懂用)。