<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[coder_e的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/coder_e</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; coder_e]]></copyright><item><title><![CDATA[Flutter网络请求库Dio的封装（单例、动态baseUrl、拦截器、日志、请求loading）]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/107548039</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/107548039</guid><author>coder_e</author><pubDate>Thu, 23 Jul 2020 21:13:05 +0800</pubDate><description><![CDATA[封装网络请求的几个好处：

便于统一配置请求参数，如header，公共参数，加密规则等
方便调试，详细的日志打印信息
优化代码性能，避免到处滥new对象，构建全局单例
简化请求步骤，只暴露需要的响应数据，而对错误的响应统一回调
对接口数据的基类封装，简化解析流程
无侵入的，灵活的请求loading配置

请求loading自动化
只需要传递一个参数，就可以为请求加上Loading效果，没有任何的代码入侵
  var params = DataHelper.getBaseMap();
    params.c]]></description><category></category></item><item><title><![CDATA[Kotlin with 、apply等函数的使用场景总结]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/80659115</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/80659115</guid><author>coder_e</author><pubDate>Mon, 11 Jun 2018 22:52:23 +0800</pubDate><description><![CDATA[1. with定义：fun &amp;lt;T, R&amp;gt; with(receiver: T, block: T.() -&amp;gt; R): R功能：将对象作为函数的参数，在函数内可以通过 this指代该对象。返回值为函数的最后一行或return表达式。实例：1.在自定义view中当我们初始化画笔时很多时候我们会写下边的代码    var paint = Paint()
    paint.color =...]]></description><category></category></item><item><title><![CDATA[Android 7.0适配 FileUriExposedException]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/80636868</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/80636868</guid><author>coder_e</author><pubDate>Sat, 09 Jun 2018 22:09:36 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/yy1300326388/article/details/52787853]]></description><category></category></item><item><title><![CDATA[Kotlin扩展函数的使用]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/80342446</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/80342446</guid><author>coder_e</author><pubDate>Wed, 16 May 2018 20:32:39 +0800</pubDate><description><![CDATA[在使用java开发Android时，我们经常会封装许多工具类比如：public class Utils{    private String getAppVersion(Context context){    ........//     return version;    }}想要获取App的Vsersion必须传入Context对象作为参数，然而在Kotlin中我们可以直接对Context...]]></description><category></category></item><item><title><![CDATA[Kotlin中内部类的写法]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/80342208</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/80342208</guid><author>coder_e</author><pubDate>Wed, 16 May 2018 20:16:41 +0800</pubDate><description><![CDATA[今天写项目的时候碰到一个问题，按照java的习惯在Kotlin中写出如下代码：class Outer{    fun fOuter(){    }    class Inner{        fun fInner(){            fOuter()//此处编译失败，无法调用Outer类的方法        }    }}如果想在Inner类中调用fOuter()函数，编译是不会通过的，...]]></description><category></category></item><item><title><![CDATA[redownload dependencies and sync project 解决方法]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/78632818</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/78632818</guid><author>coder_e</author><pubDate>Sat, 25 Nov 2017 16:56:18 +0800</pubDate><description><![CDATA[redownload dependencies and sync project 解决方法]]></description><category></category></item><item><title><![CDATA[ScrollView中放ImageView在顶部和底部出现空白的解决方案]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/71786814</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/71786814</guid><author>coder_e</author><pubDate>Sat, 13 May 2017 10:59:32 +0800</pubDate><description><![CDATA[解决办法：
设置ImageView的adjustViewBounds属性为true
原因：

ImageView 的adjustViewBounds 属性
取值为true时：Adjust the ImageView's bounds to preserve the aspect ration of its drawable.调整ImageView的界限来保持图像纵横比不变。这并不意味着Im]]></description><category></category></item><item><title><![CDATA[Android Studio 更新 gradle 一直在build的解决方案]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/62043159</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/62043159</guid><author>coder_e</author><pubDate>Tue, 14 Mar 2017 14:46:14 +0800</pubDate><description><![CDATA[分析原因 ：网速太慢下载失败；解决步骤：
1、在网上随便找个vpn试用下 ，去https://services.gradle.org/distributions/下载最新的gradle压缩包；2、打开Android Studio 找到wrapper文件夹下的wrapper.properties文件修改下载url为
distributionUrl=http://localhost/gradle-]]></description><category></category></item><item><title><![CDATA[一行代码实现沉浸式状态栏]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/53884153</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/53884153</guid><author>coder_e</author><pubDate>Mon, 26 Dec 2016 10:34:01 +0800</pubDate><description><![CDATA[参考了StatusBarUtil这个库，使用里面StatusBarUtil.setColor(Activity activity,int color),发现状态栏颜色改变 但透明度存在一定差异
于是用其StatusBarUtil.setTransparent(Activity activity)，状态栏变为透明，但颜色却变为白色，于是看了其源码，整理出一个方法，一行代码实现沉浸式状态栏效果；
]]></description><category></category></item><item><title><![CDATA[Exeution failed for task 解决方案]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/53389130</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/53389130</guid><author>coder_e</author><pubDate>Tue, 29 Nov 2016 09:40:51 +0800</pubDate><description><![CDATA[Error:Execution failed for task ':app:buildInfoDebugLoader'. > Exception while doing past iteration








将重复文件删掉一个即可，亲测可行。]]></description><category></category></item><item><title><![CDATA[Android Studio获取SHA1证书方法]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/53184702</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/53184702</guid><author>coder_e</author><pubDate>Wed, 16 Nov 2016 11:20:03 +0800</pubDate><description><![CDATA[1、alt+R进入控制台，找到JDK安装路径的bin目录下
2、输入以下命令：keytool -list -v -keystore c:\users\Administrator\.android\debug.keystore -alias
 androiddebugkey -storepass android -keypass androidand


很简单，记录一下]]></description><category></category></item><item><title><![CDATA[Android自定义iOS风格Dialog]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/53171672</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/53171672</guid><author>coder_e</author><pubDate>Tue, 15 Nov 2016 15:19:27 +0800</pubDate><description><![CDATA[效果图：








实现步骤：
1、在res/values/styles中声明自定义风格的style
   
        @null
        true
        false
        true
        @android:color/transparent
        false
    2、 在drawable文件夹中声明如下Edit]]></description><category></category></item><item><title><![CDATA[自定义ViewGroup之Topbar----布局代码的缩减，实现app风格的高度一致]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/53119011</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/53119011</guid><author>coder_e</author><pubDate>Thu, 10 Nov 2016 18:57:07 +0800</pubDate><description><![CDATA[最近写项目，有二三十个布局，都具有相同风格的标题栏，如果每一个界面都反复写一个布局，重复的工作太多，代码重复也多，于是自定义一个ViewGroup作为通用的Topbar，通过设置标签属性达到风格一致，细节不同的效果，大量缩减代码量和布局的复杂度，切能让app风格高度一致；
主要实现功能：
1、可自由设置布局背景、图标
2、自由控制Topbar中button的显示和隐藏
3、可为不同的But]]></description><category></category></item><item><title><![CDATA[超级简单的ButterKnife使用技巧]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/53070827</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/53070827</guid><author>coder_e</author><pubDate>Mon, 07 Nov 2016 20:47:06 +0800</pubDate><description><![CDATA[简单明了，步骤如下：
1、框架的导入eclipse：官网下载jar包，复制到lib文件夹
Android Studio： File->Project Structure->Dependencies->Library dependency 搜索butterknife即可
2、使用情景
①、Activity和View的绑定
class BaseActivity extends Activit]]></description><category></category></item><item><title><![CDATA[RecycleView的使用步骤]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/53007302</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/53007302</guid><author>coder_e</author><pubDate>Wed, 02 Nov 2016 13:53:03 +0800</pubDate><description><![CDATA[RecycleView是5.0之后新出的控件，使用起来更自由和多样。
下面简单介绍一下使用步骤：
1、准备数据源；


2、初始化RecycleView；


2、自定义adapter，继承自RecycleView.Adapter；


3、为RecycleView设置LayoutManager；


4、为RecycleView设置Adapter；


其中可以]]></description><category></category></item><item><title><![CDATA[Fragment的正确使用方式]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/52995328</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/52995328</guid><author>coder_e</author><pubDate>Tue, 01 Nov 2016 14:07:26 +0800</pubDate><description><![CDATA[fragment是我们经常使用到的一个控件，但是，相信大家会出现这样的一个问题，每次切换fragment的时候，fragment就会重新调用一次生命周期的方法，从而会重新加载一次数据，这样既消耗用户的数据流量和机器性能； 现在就教大家一个方法，来解决这个问题； 之前我们一直都是这样写的代码：
/**
     * 根据传入的参数来改变当前的fragment
     *
     * @para]]></description><category></category></item><item><title><![CDATA[android开发adb端口被占用问题]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/52980062</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/52980062</guid><author>coder_e</author><pubDate>Mon, 31 Oct 2016 10:09:20 +0800</pubDate><description><![CDATA[解决ADB端口占用问题


方式一
5037为adb默认端口，若5037端口被占用，
查看占用端口的进程PID
C:\Users\wwx229495>netstat -aon|findstr 5037
  TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       3676


通过PID查看所有进程]]></description><category></category></item><item><title><![CDATA[ListView中嵌入button，点击监听无响应的解决方案]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/52413047</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/52413047</guid><author>coder_e</author><pubDate>Fri, 02 Sep 2016 12:57:59 +0800</pubDate><description><![CDATA[在ListView的item的根节点中设置如下属性：
android:descendantFocusability="blocksDescendants"

具体原因如下：


android:descendantFocusability 属性简析

    开发中很常见的一个问题，项目中的listview不仅仅是简单的文字，常常需要自己定义listview，自己的Adapter去]]></description><category></category></item><item><title><![CDATA[Android清除本地数据缓存代码]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/52373558</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/52373558</guid><author>coder_e</author><pubDate>Tue, 30 Aug 2016 22:07:23 +0800</pubDate><description><![CDATA[转载链接：http://www.cnblogs.com/rayray/p/3413673.html




/*  * 文 件 名:  DataCleanManager.java  * 描    述:  主要功能有清除内/外缓存，清除数据库，清除sharedPreference，清除files和清除自定义目录  */


import java.io.File;
import a]]></description><category></category></item><item><title><![CDATA[多重Fragment嵌套，子Fragment的onActivityResult方法不执行的解决方案]]></title><link>https://blog.youkuaiyun.com/coder_e/article/details/52335947</link><guid>https://blog.youkuaiyun.com/coder_e/article/details/52335947</guid><author>coder_e</author><pubDate>Sat, 27 Aug 2016 16:58:03 +0800</pubDate><description><![CDATA[Activity aa 
Fragment fa
Fragment  fa1
Fragment fb
Fragment fc
Activity ab


如上所示关系，在a1中调用fa1.startActivityForResult()方法，跳转到ab， ab  finish() 之前反传值，fa1的onActivityResult()方法没有调用
而是调用其父Fragment ]]></description><category></category></item></channel></rss>