<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Imagine_Yao的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Imagine_Yao</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Imagine_Yao]]></copyright><item><title><![CDATA[Android Error inflating class fragment]]></title><link>https://blog.youkuaiyun.com/Imagine_Yao/article/details/109080670</link><guid>https://blog.youkuaiyun.com/Imagine_Yao/article/details/109080670</guid><author>Imagine_Yao</author><pubDate>Wed, 14 Oct 2020 18:59:23 +0800</pubDate><description><![CDATA[Android Error inflating class fragment
在Activity的xml布局文件中使用fragment，如下所示

运行产生如下错误。
解决方法：为fragment添加id属性。

]]></description><category></category></item><item><title><![CDATA[Android事件分发机制与滑动冲突]]></title><link>https://blog.youkuaiyun.com/Imagine_Yao/article/details/108650781</link><guid>https://blog.youkuaiyun.com/Imagine_Yao/article/details/108650781</guid><author>Imagine_Yao</author><pubDate>Thu, 17 Sep 2020 19:32:50 +0800</pubDate><description><![CDATA[Android事件分发机制
一、概述
1. 事件
事件通常指触摸或点击事件，用户触摸屏幕时产生 Touch 事件。Touch 事件的相关细节封装于 MotionEvent 对象中。




事件类型
具体动作




MotionEvent.ACTION_DOWN
按下事件（开始）


MotionEvent.ACTION_UP
抬起事件（结束）


MotionEvent.ACTION_MOVE
滑动事件


MotionEvent.ACTION_CANCEL
取消事件


2. 分发流程

如上图所示，]]></description><category></category></item><item><title><![CDATA[Kotlin学习笔记（五） Java互操作]]></title><link>https://blog.youkuaiyun.com/Imagine_Yao/article/details/107417707</link><guid>https://blog.youkuaiyun.com/Imagine_Yao/article/details/107417707</guid><author>Imagine_Yao</author><pubDate>Fri, 17 Jul 2020 21:03:08 +0800</pubDate><description><![CDATA[Java互操作
一、Kotlin中调用Java


Getter和Setter


public class Person {
    private String name;
    private String gender;
    private int wage = 1000;

    public String getName() { return name; }

    public void setName(String name) { this.name = name; }

    ]]></description><category></category></item><item><title><![CDATA[Kotlin学习笔记（四） 集合（下）]]></title><link>https://blog.youkuaiyun.com/Imagine_Yao/article/details/107383776</link><guid>https://blog.youkuaiyun.com/Imagine_Yao/article/details/107383776</guid><author>Imagine_Yao</author><pubDate>Thu, 16 Jul 2020 15:23:02 +0800</pubDate><description><![CDATA[集合
十一、取集合的一部分


Slice


slice()返回具有给定索引的集合元素列表。
val numbers = listOf("one", "two", "three", "four", "five", "six")
println(numbers.slice(1..3))  // [two, three, four]
println(numbers.slice(0..4 step 2))  // [one, three, five]
println(numbers.slice(listOf(3]]></description><category></category></item><item><title><![CDATA[Kotlin学习笔记（三） 集合（上）]]></title><link>https://blog.youkuaiyun.com/Imagine_Yao/article/details/107383599</link><guid>https://blog.youkuaiyun.com/Imagine_Yao/article/details/107383599</guid><author>Imagine_Yao</author><pubDate>Thu, 16 Jul 2020 15:19:48 +0800</pubDate><description><![CDATA[集合
一、概述


集合类型：


List 有序集合。可通过索引访问。
Set 唯一元素的集合。无重复对象。
Map（字典）是一组键值对。键是唯一的。


接口类型


一个 只读 接口，提供访问集合元素的操作。
一个 可变 接口，通过写操作扩展相应的只读接口：添加、删除、更新。
更改集合不需要它以var定义：写操作修改同一个可变集合对象，因此引用不会改变。
Kotlin集合接口关系：



List


索引：0 ~ list.size - 1
如果两个List在相同位置具有相同大小和相同结构的元素，则]]></description><category></category></item><item><title><![CDATA[Kotlin学习笔记（二） 函数与Lambda表达式]]></title><link>https://blog.youkuaiyun.com/Imagine_Yao/article/details/107323496</link><guid>https://blog.youkuaiyun.com/Imagine_Yao/article/details/107323496</guid><author>Imagine_Yao</author><pubDate>Mon, 13 Jul 2020 19:32:14 +0800</pubDate><description><![CDATA[函数与Lambda表达式
一、函数
1. 声明
fun关键字
fun double(x: Int): Int { return 2 * x }

2. 用法
函数：传统方法
val res = double(2)

成员函数：点表示法
Stream().read()

3. 参数
使用Pascal表示法，name: type。每个参数必须有显式类型。


默认参数


fun read(b: Array&lt;Byte&gt;, off: Int = 0, len: Int = b.size) {  }

]]></description><category></category></item><item><title><![CDATA[Kotlin学习笔记（一） 类与对象]]></title><link>https://blog.youkuaiyun.com/Imagine_Yao/article/details/107260985</link><guid>https://blog.youkuaiyun.com/Imagine_Yao/article/details/107260985</guid><author>Imagine_Yao</author><pubDate>Fri, 10 Jul 2020 18:46:16 +0800</pubDate><description><![CDATA[类与对象
1. 属性与字段


Getters与Setters


set方法与get方法中如果需要用到变量，需要用field来表示当前变量而不能直接引用，否则会造成死循环。
关键字field表示幕后字段，只能在getter和setter内对它访问。
// 正确方法
var gender: String = "Man"
    set(value) {
        println("setter $value")
        field = value
    }

// 错误方法
var gend]]></description><category></category></item></channel></rss>