Android知识点之enum

序言

问题

enum在Android应不应该使用?

解决方案

关于enum,Android Developers中这样一句话:

enums often require more than twice as much memory as static constants. You should strictly avoid using enums on Android

就是说enum比静态常量两倍多的内存占用,应该尽量减少使用。当然了,这里说的是减少并不是禁止,要知道,enum的产生,注定其必定有适合的应用场景,而且它带来的代码简洁性和可读性,都是不可小觑的。

所以,如果在不使用enum的情况下是有替代方案的:

  • 使用静态常量的形式替代
  • 使用Typedef Annotations替代

第一种没什么说的,下面就重点说一说第二种,就是通过注解的形式来代替,注解是由 support 包提供的功能,如果使用,需要添加 support 包到module。

Android知识点之Tanlayout

序言

开发过程中多多少少会遇到一些坑,也会留下一些坑,还有一些小的容易忽略的细节,或者从其他大牛那里了解到的知识点,发现了就整理下来,做个备注,如果恰好有人遇到了,拿走别客气。

Tablayout

问题

为什么tablayout的英文(字母)标签名称默认全是大写?

解决方案

tablayout + viewpager + fragment的分页模式很常见了(这只是其中一种),这个不是重点,重点是tablayout的文字属性。

可能你使用tablayout的显示分类都是中文的, 比如:新闻、数码、设计、前端…

不知道你有没有使用过英文或者说字母的标签名称,你可以直接使用Android Studio 创建一个默认的分页的module,默认标题是英文的,所以你可以看到显示出来全部都是大写的,如果正好使用了这样的名称,那么恭喜你,你可以不用往下看了。但是由于我所使用的是首字母大写的形式,所以最后发现是一个属性的问题:textAllCaps

最终的解决方案是,你可以为tablayout自定义一个style,设置textAllCaps属性为false:

,