想必关于使用自定义 TabLayout 来作为ViewPager 的指示器,大家都已经很熟悉了吧,如果还不了解自定义 TabLayout,可以看看 Showdy 写的 TabLayout之自定义样式

本文呢,不再过多的复述如何自定义 TabLayout 的样式相关问题,而是简单说说如何自定义 TabLayout 的分隔符 Divider

如下图所示,是需要实现的页面效果:

阅读全文 »

1、什么是 View

在我们的日常工作中,你可能已经接触过了很多 View ,View 是 Android 中所有控件的基类,例如 Buttton、TextView、LinearLayout,这些类的继承关系如下图的所示(使用 Ctrl + H 快捷键组合可以查看选中类的继承关系):

阅读全文 »

项目中有一个页面实现的是用户为教师打分的功能,页面使用 RecyclerView 来实现的,由于这个功能一直没有正式上线使用,所以接手之后我也没有注意过这段代码是否存在问题。在前段时间上线使用之后,今天用户反应说这个页面存在 crash,遂检查修复。

发现只是一个简单的空指针错误(原来负责项目的人对空指针的判断已经坑我若干次了…),修复之后进行了简单的测试,发现还存在这另一个问题:在 EditText 中修改分值后,如果滚动 RecyclerView 再次回到该处的时候,EditText 中的内容被置为 0 了。坑里有坑!这就很尴尬了,这个项目的前任工程师真是挖了一个很大的坑啊。

阅读全文 »

转载请标明出处:http://www.jianshu.com/p/e1772bfa9a96

img

引言

作为一名 Androider 你应该也曾被 AS 那缓慢的编译速度所折磨 ,更为可怕的是即使你只是简单的修改了几行代码,修改了几个布局文件,当你再次运行的时候还是需要再次进行:「编译项目」—「安装 APK 到手机」。这两个步骤在我这台机器上,快则 4、5 分钟,慢则需要 10 多分钟,调试过程异常痛苦!

阅读全文 »

转载请标明原文地址:http://www.jianshu.com/p/b547d889c6c8

一个奇葩的需求,用户希望可以由客户来自定义 app 的应用名、图标,由于这些资源是不确定的,所以没有办法事先通过打包多个 flavor 来满足需求。需要在用户需要的时候,动态的完成打包工作。

apktool

思考

在接到这个需求的时候,我想到了两个可能实现的方案:

  1. 使用 gradle,将项目源文件放在服务器上,当需要打包时,替换对应的资源文件,然后调用 gradle 指令,完成打包任务(思路来自 Jenkins,其实质好像就是通过调用gradle来进行打包)。

  2. 服务器上放置 apk 文件,在需要的时候,解包 apk,替换资源文件,然后重新打包签名。(思路来自鸿洋反编译的博文)。

其中方法一需要重新编译打包,无疑是一个极其费时的方法,故考虑采用方法二。

阅读全文 »

转载请标明原文地址:http://www.jianshu.com/p/dc163215bc7e


本来打算继续写 MVP 模式的,但是看了网上的几篇 Dagger 介绍的文章后,还是决定先写写 Dagger,网上有些文章写的不是过于简单就是太过复杂,或是不够详实,让刚接触 Dagger 的人容易看的云里雾里。正好也是刚学习 Dagger 没多久,记录下来对自己也是一个查缺补漏。文中如有错误,请各位大佬予以斧正!

本文示例代码:https://github.com/junerver/DaggerDemo


阅读全文 »

Retrofit

现在Android开发中,主流的网络请求库有Retrofit、OkHttp、Volley等,最热门的就是Retrofit了。

Retrofit官方的介绍是:A type-safe REST client for Android and Java(类型安全的REST客户端for 安卓&Java)

RESTful可以参考这篇文章,本文只做Retrofit的介绍以及配合RxJava使用上的简单介绍,本文中的Retrofit指retrofit:2.1.0版本;

阅读全文 »

转载请标明原文地址:http://www.jianshu.com/p/843055bf6edd

重要更新

  1. 现在新建变体还需要在 defaultConfig 下加入 flavorDimensions "versionCode"
  2. 我写了一个脚本可以快速的创建变体的sourceSet,项目地址:junerver/flavor_cli

使用方法:将该脚本复制到项目根目录下(与app目录同级),然后运行指令:python3 flavor_variant.py,后续按照提示输入即可,因为是供自己开发快速使用的,所有必然有bug与一些严格匹配的要求,欢迎提PR!

阅读全文 »

场景:存在着两个不同的实体类(ParentEntity、ChildEntity),这两个实体类中都有头像这一个属性,对应着服务器的图片保存位置。需要一个方法,可以获取这一属性,然后将图片下载保存到本地指定位置,同时将路径保存到该实体类,然后更新数据库。

阅读全文 »
0%