<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[楼兰暮雪]]></title><description><![CDATA[滴滴答答]]></description><link>https://blog.youkuaiyun.com/wjploop</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wjploop]]></copyright><item><title><![CDATA[Android 左右抖动动画]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/107463264</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/107463264</guid><author>wjploop</author><pubDate>Mon, 20 Jul 2020 14:45:40 +0800</pubDate><description><![CDATA[目标效果

触发后，金币左右抖动多次，向上移动并消失，文字向下移动显示
实现方式似乎很简单，依次实现上述三个动画即可
而本文主要展示我在第一个动画的探索过程
版本1
我们需要保持动画结束时的状态，故采用属性动画。
    ObjectAnimator.ofFloat(iv_coin, "translationX",  -100f,  100f).apply {
        duration = 1000
        repeatCount = 2
        repeatMode = Value]]></description><category></category></item><item><title><![CDATA[InheritedWidget]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/105483127</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/105483127</guid><author>wjploop</author><pubDate>Mon, 13 Apr 2020 15:48:50 +0800</pubDate><description><![CDATA[在Flutter中，对应于Widget之内状态管理，Widget之间的状态是如何管理和以及传递的？
具体例子，对于Text这样的组件，它是如何根据主题配置信息，改变其默认的字体大小，颜色等？
假设存在Widget，A，B，C，依赖关系A&lt;B&lt;C，A中使用StatefullWidget保存一个状态，C需依据A状态变换而变化，那么当A变化时需要重建组件树 B&lt;C，可B并不依赖A的状态...]]></description><category></category></item><item><title><![CDATA[NestedScrollView嵌套WebView，webview底部多余空白]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/102574716</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/102574716</guid><author>wjploop</author><pubDate>Tue, 15 Oct 2019 20:54:12 +0800</pubDate><description><![CDATA[问题如题，解决：
 &lt;androidx.core.widget.NestedScrollView
            android:layout_width="match_parent"
            app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavi...]]></description><category></category></item><item><title><![CDATA[fail-fast机制]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/100515112</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/100515112</guid><author>wjploop</author><pubDate>Tue, 03 Sep 2019 11:41:52 +0800</pubDate><description><![CDATA[fail-fast机制
fail-fast（快速失败）机制在Java集合中都存在，本文就ArrayList分析。
fail-fast是什么？
先从ArrayList的官方解释看看：
/**
 * The iterators returned by this class's {@link #iterator() iterator} and
 * {@link #listIterator(int) l...]]></description><category></category></item><item><title><![CDATA[BadParcelableException]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/88858235</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/88858235</guid><author>wjploop</author><pubDate>Wed, 27 Mar 2019 23:18:25 +0800</pubDate><description><![CDATA[在接入融云的api时，写自定义消息，遇到了这个问题

在融云中自定义消息，要实现其Paceleable接口。
错误表现，在会话界面可以发送正常的自定义消息。
离开重返会话界面直接崩了，
定位到的错误信息看起来也很明显，没有能解析出本地的序列化化的数据，在Message的反序列方法中崩了。
错误定位：
   /**
     * Read and return a new Parcelable f...]]></description><category></category></item><item><title><![CDATA[Only fullscreen opaque activities can request orientation]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/88772382</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/88772382</guid><author>wjploop</author><pubDate>Sun, 24 Mar 2019 02:22:27 +0800</pubDate><description><![CDATA[接手公司的项目，升级sdk之后 ，遇到了这个问题。
参考https://blog.youkuaiyun.com/starry_eve/article/details/82777160

如日志所说的，只有全屏且不透明的activity才能请求屏幕方向。
想解决问题，需要先明白下面两个问题：
1.全屏不透明的activity如何定义？
在activity的主题配置文件中，声明了下面三者之一的属性，即被定义为 ...]]></description><category></category></item><item><title><![CDATA[adb wifi连接手机]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/88372973</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/88372973</guid><author>wjploop</author><pubDate>Sat, 09 Mar 2019 23:05:14 +0800</pubDate><description><![CDATA[前提知识：

手机电脑连接，手机作为服务器，电脑作为客户端。
手机服务器(adbd)，可以配置接受usb连接（默认），也可以配置tcpip连接（即我们想要的通过wifi连接）。


下面分为两种情况：
一. 有usb线，手机没有root，连接后不用usb线

先用usb连接到手机服务器，配置手机服务器接受tcpip连接

具体步骤：

手机、电脑确保连在同一个局域网
将手机的服务器设置接受t...]]></description><category></category></item><item><title><![CDATA[JVM Specification  Note-1]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/85041810</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/85041810</guid><author>wjploop</author><pubDate>Sun, 16 Dec 2018 22:23:47 +0800</pubDate><description><![CDATA[原来虚拟机还有一个返回值的类型，returnAddress
在帧中的本地变量中，其变量的内存都是编译时就分配的，在存放在一个数组中.
其中有趣且熟悉的是，Long或Double类型的变量会占两个坑，就是说，在LocalVaraiable[]中，需要用两个Index来存放一个元素，可想到，这就是C中的数组啊，一个元素是32位。而Long和Double都是64位的，所以，一切在不言中。
最近看了Pyt...]]></description><category></category></item><item><title><![CDATA[闹钟笔记]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/84941503</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/84941503</guid><author>wjploop</author><pubDate>Mon, 10 Dec 2018 16:01:51 +0800</pubDate><description><![CDATA[
Kotlin中Int和 Java中的Integer关系
Int 可以视为基本类型的，即java中的 int
Int?作为可空类型，可以视为Integer

注意：String.toInt()是转为Interger,而Interger不是Any的子类

...]]></description><category></category></item><item><title><![CDATA[Kodein笔记]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/84587623</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/84587623</guid><author>wjploop</author><pubDate>Wed, 28 Nov 2018 17:10:55 +0800</pubDate><description><![CDATA[
gradle下载中，闲的慌记录下Kodeinn

Kodein有在类型擦拭问题上，有两种Flavor可选。
一种是常规不做处理，
一种是能够在运行时保留类型参数的。
注：类型擦拭简单解释，泛型作为类型参数，在编译成字节码之后其类型是不保留的，它的作用仅限于在编译前提供检查。
如:
List&amp;lt;Sring&amp;gt; strsList=new ArrayList&amp;lt;&amp;gt;()
strList...]]></description><category></category></item><item><title><![CDATA[Rxjava官网API预览]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/84332823</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/84332823</guid><author>wjploop</author><pubDate>Thu, 22 Nov 2018 01:24:19 +0800</pubDate><description><![CDATA[
学Rxjava也有段时间，今天你又遇到它相关的问题，打算再看看官网来一个整体性的回顾，做做笔记。

InReactiveX an observer subscribes an Observable.
在Rx中，有几个基础概念。

Observable 被观察者：发出事件或数据的源头
Subsriber 观察者：监听观察者的货色，对事件作出相应的动作
Operartors 操作：数据从 源 到观察...]]></description><category></category></item><item><title><![CDATA[Android Meida 笔记]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/83659611</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/83659611</guid><author>wjploop</author><pubDate>Fri, 02 Nov 2018 18:17:47 +0800</pubDate><description><![CDATA[
涉及到音乐播放，学习googlesample中的ump，结合官网中的Guide

架构预览
实现一个音乐播放器，要是不使用任何设计，简单思路如下：

获取多媒体文件，扫描本地或远程获取
使用一个设想中、应有的、可以解码多媒体文件的播放器，对文件播放，暂停，快进…等等操作
将播放器播放状态同步到UI
UI可以包括：

展示封面的控制按钮的主播放页面、
在音乐列表中悬浮一个底部控制栏，（而这个底部控...]]></description><category></category></item><item><title><![CDATA[监听多个网络请求完成后，才显示正常页面]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/83588165</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/83588165</guid><author>wjploop</author><pubDate>Wed, 31 Oct 2018 17:59:18 +0800</pubDate><description><![CDATA[一个页面有多个网络请求，需等待全部请求完成后，做一进步处理（比如隐藏加载页面）
方案1：使用Rxjava中操作符zip
这种方法很方便，不仅可以监听全部完成的时刻，还可以对多个请求结果进进一步处理。
方案2：没有使用Rxjava情况下，自定义个变量并监听它的变化
情景：今天使用了喜马拉雅的SDK，其网络请求直接使用了OKHttp，请求格式如下：
 CommonRequest.getAlbumLis...]]></description><category></category></item><item><title><![CDATA[从小工到..笔记1]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/83509011</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/83509011</guid><author>wjploop</author><pubDate>Mon, 29 Oct 2018 17:07:18 +0800</pubDate><description><![CDATA[单例模式三种实现
1. DCL双检验

public class A {
	private static A sInsatnce =null;
	private A(){}
	
	public static A getInstance(){
		if(sInstance==null){
			synconized(A.class){
				if(mInstance==null) mInstanc...]]></description><category></category></item><item><title><![CDATA[BottomSheetDialog 中edit被键盘部分遮挡]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/81941046</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/81941046</guid><author>wjploop</author><pubDate>Wed, 22 Aug 2018 11:27:49 +0800</pubDate><description><![CDATA[问题： 在dialog中存在一个editText，当键盘出现后，键盘会覆盖焦点以下的dialog 

解决思路：ajustResize会重新布局当前窗口，且需要当前dialog不是浮动的。

解决方案：为创建的bottomSheetDialog设置自定style,代码如下

&amp;lt;style name=&quot;BottomSheetEdit&quot; parent=&quot;Theme.Design.Light.Bo...]]></description><category></category></item><item><title><![CDATA[关于RxJava的一些翻译]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/81626324</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/81626324</guid><author>wjploop</author><pubDate>Mon, 13 Aug 2018 11:04:25 +0800</pubDate><description><![CDATA[关于RxJava一些翻译



UpStream and DownStrea 上游和下游

在RxJava中数据流可以分为数据源，数据源的操作和数据消费者。 
站在操作的位置，可以把输入看作上游，把输出看作下游。

Object in motion 运动对象

在数据流中，以下看成同义词，emission,emits,item,signal,data,message

Backpressure 背...]]></description><category></category></item><item><title><![CDATA[关于形式和内容的理解]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/81623750</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/81623750</guid><author>wjploop</author><pubDate>Mon, 13 Aug 2018 08:50:19 +0800</pubDate><description><![CDATA[感想的初衷

以前在看马克思时，初略地了解了形式和内容的关系。 
形式和内容是在站较高层次上概述一件事的，很多事情都可以划分为形式和内容。 
比如说考研这件事，在复习的过程中，我们的目的是在额定的时间内完成知识内容的输入，将考研所需要的知识掌握。这样，把掌握知识当作内容，把每天有规律的学习作为形式。（这里，形式特指学习方式上表现出来的规律作息学习） 
区分形式内容，我们会发现内容是我们所需要的，形...]]></description><category></category></item><item><title><![CDATA[CSS笔记]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/80139958</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/80139958</guid><author>wjploop</author><pubDate>Sat, 28 Apr 2018 22:37:11 +0800</pubDate><description><![CDATA[不是行级元素，不能直接用magin-top这样的属性 
  如：
a {
    margin-top： 100px;  //无效
}
  必须先使其成为行级元素，其他元素类似。
a {
    display: inline-block；
    margin-top: 100px;  //有效的
}]]></description><category></category></item><item><title><![CDATA[#Spring AOP踩坑]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/80032313</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/80032313</guid><author>wjploop</author><pubDate>Sat, 21 Apr 2018 18:48:55 +0800</pubDate><description><![CDATA[Spring AOP踩坑建立一个AOP demo的步骤
启动AOP注解扫描. 
 
//在applicationContext.xml中加入 
 <aop:aspectj-autoproxy /> 
 使其会注意到@Aspect注解 
 或是在启动类中加入@EnableAspectAutoProxy注解 
 当然加入这个,使其能够找到@Component等 
 <context:component-]]></description><category></category></item><item><title><![CDATA[Mybatis 中的resultType和resultMap]]></title><link>https://blog.youkuaiyun.com/wjploop/article/details/79659320</link><guid>https://blog.youkuaiyun.com/wjploop/article/details/79659320</guid><author>wjploop</author><pubDate>Thu, 22 Mar 2018 20:22:06 +0800</pubDate><description><![CDATA[##MyBatis中关于resultType和resultMap的区别 ##
MyBatis中在查询进行select映射的时候，返回类型可以用resultType，也可以用resultMap，resultType是直接表示返回类型的(对应着我们的model对象中的实体)，而resultMap则是对外部ResultMap的引用(提前定义了db和model之间的隐射key–>value关系)，但是res]]></description><category></category></item></channel></rss>