<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[晨光飞舞的专栏]]></title><description><![CDATA[众妙之妙～妙不可言]]></description><link>https://blog.youkuaiyun.com/candyguy242</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; candyguy242]]></copyright><item><title><![CDATA[优雅解决DialogFragment所有布局问题]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/141164690</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/141164690</guid><author>candyguy242</author><pubDate>Tue, 13 Aug 2024 15:13:53 +0800</pubDate><description><![CDATA[事实上，解决方法有多种很正常，关键是正是由于网上说的解决方案太多了，不容易去记住，哪种处理是解决哪个问题的，比如，如果按照上述所说的解决思路，设置宽高无效和设置背景透明无效的处理方式是不一样的，那么下次遇到同样的问题时，可能你还得去重新查。而这里说有一种方式可以解决绝大多数的布局显示问题，就是在任何DialogFragment的生命周期方法被回调之前全部配置好想要的主题效果，就可以忽略由于回调的时机先后而产生的各种问题了，当然，这里就不过多去描述系统底层的回调时机和逻辑了，有兴趣的，可自行阅读源代码。]]></description><category></category></item><item><title><![CDATA[Jectpack Navigation组件设置统一跳转动画]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/140214600</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/140214600</guid><author>candyguy242</author><pubDate>Fri, 05 Jul 2024 17:34:17 +0800</pubDate><description><![CDATA[Activity的跳转一般通过Theme设置即可，但是Framment的跳转除了NavigationUI类提供的方法会有动画以外，直接调用navigate方法是没有动画的。然后正常调用导航方法即可，在没有明确设置跳转动画时，会添加默认动画，也可以指定跳转动画。]]></description><category></category></item><item><title><![CDATA[通过 Desktop 学 Docker 也太简单了]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/139097873</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/139097873</guid><author>candyguy242</author><pubDate>Tue, 21 May 2024 17:19:31 +0800</pubDate><description><![CDATA[通过命令行 docker run 来跑镜像， -v 是指定挂载的数据卷，后面的 :ro 代表 readonly，也就是容器内这个目录只读，:rw 表示容器内可以读写这个目录。它把系统的所有文件封装成一个镜像，镜像跑起来作为容器，它可以在一台机器上跑多个容器，每个容器都有独立的操作系统环境，比如文件系统、网络端口等，在容器内跑各种服务。所以我们都是把某个宿主机目录，挂载到容器内的某个保存数据的目录，这样数据是保存在宿主机的，下次再用镜像跑一个新容器，只要把这个目录挂载上去就行。]]></description><category></category></item><item><title><![CDATA[安卓-APP启动优化技术方案汇总]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/133775961</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/133775961</guid><author>candyguy242</author><pubDate>Wed, 11 Oct 2023 18:08:47 +0800</pubDate><description><![CDATA[应用有三种启动状态：冷启动、温启动或热启动。每种状态都会影响应用向用户显示所需的时间。在冷启动中，应用从头开始启动。在另外两种状态中，系统需要将后台运行的应用带入前台。我们建议您始终在假定冷启动的基础上进行优化。这样做也可以提升温启动和热启动的性能。如需优化应用以实现快速启动，了解系统和应用层面的情况以及它们在各个状态中的互动方式很有帮助。确定应用启动时间的两个重要指标是和。TTID 是显示第一帧所用的时间，TTFD 则是应用达到可全面互动的状态所用的时间。]]></description><category></category></item><item><title><![CDATA[android 按home键或三方启动回到桌面，然后再次进入app，app重新打开问题]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/115675441</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/115675441</guid><author>candyguy242</author><pubDate>Tue, 13 Apr 2021 18:50:59 +0800</pubDate><description><![CDATA[这种处理一般是有一个专门的启动Activity，然后再跳转到真正的主Activity，例如主Activity叫MainActivity,SplashActivity的launchMode设为standard,MainActivity设置为singleTask:

可以在SplashActivity的onCreate中方法判断MainActivity是不是已经存在，如果已经存在，就直接finish掉SplashActivity即可。


    @Override
    protected void onC]]></description><category></category></item><item><title><![CDATA[Android App Widget创建步骤 带配置界面]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/115492206</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/115492206</guid><author>candyguy242</author><pubDate>Wed, 07 Apr 2021 18:14:24 +0800</pubDate><description><![CDATA[本文来自http://blog.youkuaiyun.com/chenshaoyang0011转载请申明文章出处！

Android通知系统是它的一大特色，而其中，AppWidget是其中一个亮点。在开发应用的中，很多时候可以为其添加一个AppWidget显示在桌面中，及时方便的与用户进行

交互。这里就简单的熟悉一下开发一个AppWidget的流程吧。

想要在应用中创建一个AppWidget，至少需要以下几样东西：

1、需要创建一个AppWidgetProviderInfo，来描述AppWidget的元数据。2.]]></description><category></category></item><item><title><![CDATA[Android MVVM模式 轻松拥有带状态管理的ViewModel]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/108143317</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/108143317</guid><author>candyguy242</author><pubDate>Fri, 21 Aug 2020 11:14:04 +0800</pubDate><description><![CDATA[开发中经常要表示一个数据当前状态，比如加载中、加载错误、空列表。这个时候如果我们每个地方自己去处理就很麻烦，如果我们使用的viewmodel自己就能表示这些状态岂不美哉？

另外数据加载中还经常需要处理取消的逻辑，比如使用rxjava，自动管理disposable就更好了~

说干就干~封装一个BaseViewModel~


package cn.icetower.basebiz.vm;

import androidx.annotation.CallSuper;
import androidx.anno]]></description><category></category></item><item><title><![CDATA[ssh config 文件不起作用的问题]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/106299875</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/106299875</guid><author>candyguy242</author><pubDate>Sat, 23 May 2020 14:32:33 +0800</pubDate><description><![CDATA[If you use "Git for Windows"


&gt;cd c:\Program Files\Git\etc\ssh\


add to ssh_config following:


AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_rsa_test


ps. you need ssh version &gt;= 7.2 (date of release 2016-02-28)



https:/.]]></description><category></category></item><item><title><![CDATA[解决win10分辨率过高导致某些软件显示小的办法]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/105855014</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/105855014</guid><author>candyguy242</author><pubDate>Thu, 30 Apr 2020 09:52:25 +0800</pubDate><description><![CDATA[解决win10分辨率过高导致某些软件显示小的办法：



右键-&gt;属性-&gt;兼容性-&gt;更改所有用户的设置-&gt;更改高DPI设置-&gt;高DPI缩放替代-&gt;勾选替代高DPI的缩放行为指定系统(在应用程序，系统，系统增强里选系统增强）




...]]></description><category></category></item><item><title><![CDATA[Uniapp兼容性问题记录]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/103454476</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/103454476</guid><author>candyguy242</author><pubDate>Mon, 09 Dec 2019 11:02:15 +0800</pubDate><description><![CDATA[在非H5端不能使用ref的方式引用内置组件（比如view等）;
小程序中不支持vue图片懒加载框架，image中自带lazy-load属性
封装与继承的思想，对需要处理不同处理的功能定义一个方法作为接口，然后编写不同的方法实现各平台的功能，然后在接口方法中使用条件编译来调用不同的具体实现；
因为小程序对主包有2M的限制，在开发中要注意对图片等资源进行压缩，以及使用一些目录级的条件编译；
关于分包...]]></description><category></category></item><item><title><![CDATA[Java泛型的获取]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/102940164</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/102940164</guid><author>candyguy242</author><pubDate>Wed, 06 Nov 2019 18:02:32 +0800</pubDate><description><![CDATA[讨论：https://ask.youkuaiyun.com/questions/921549

Java泛型是一种语法糖，最终统一都是 Object 类型，而不是编码时指定的类型。
结论是：编译器底层并不会存储泛型类型的，也不可能得到泛型的真实的 Class 类型。要获取自身的泛型定义，只能由子类获取。









最后那种方式要写成子类方式，在构造方法后面加上花括号，比如：


new A&lt;...]]></description><category></category></item><item><title><![CDATA[ParameterizedType详解]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/102940035</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/102940035</guid><author>candyguy242</author><pubDate>Wed, 06 Nov 2019 17:54:40 +0800</pubDate><description><![CDATA[ParameterizedType详解
参数化类型

public interface ParameterizedType extends Type {
 Type[] getActualTypeArguments();

 Type getRawType();

 Type getOwnerType();
}



 何为参数化类型

列举一个实体类用代码来解释什么...]]></description><category></category></item><item><title><![CDATA[java知识总结之Type]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/102929492</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/102929492</guid><author>candyguy242</author><pubDate>Wed, 06 Nov 2019 09:57:31 +0800</pubDate><description><![CDATA[参考

Java中的Type

Type是Java 编程语言中所有类型的公共高级接口（官方解释），也就是Java中所有类型的“爹”,它并不是我们平常工作中经常使用的 int、String、List、Map等数据类型，而是从Java语言角度来说，对基本类型、引用类型向上的抽象；


Type体系中类型的包括：

原始类型(Type):不仅仅包含我们平常所指的类，还包括枚举、数组、注解等
	参数化类型...]]></description><category></category></item><item><title><![CDATA[Android TabLayout indicator 指示器宽度修改 最新思路及实现 调用方便]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/102554608</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/102554608</guid><author>candyguy242</author><pubDate>Mon, 14 Oct 2019 19:33:01 +0800</pubDate><description><![CDATA[这两天手头上的项目需要给Tablayout指示器设置一个固定的宽度，但谷歌并没有提供api，网上搜索的各种方式试了之后也没什么效果，而且调用比较麻烦，于是自己翻了源码，发现只要在tablayout中修改指示器左右的值就可以达到目的。源码如下：


        public void draw(Canvas canvas) {
            ....

            if (...]]></description><category></category></item><item><title><![CDATA[安卓目录控件]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/101307795</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/101307795</guid><author>candyguy242</author><pubDate>Tue, 24 Sep 2019 19:37:50 +0800</pubDate><description><![CDATA[项目中需要实现一个目录组件，在网上找来找去没有合适的，干脆自己搞了一个：

特点 Feature:

可配置性高，条目样式可以通过multi type的方式拓展，分块间距可以通过decoration来设置，感谢 BRVAH~
	滚动时自动同步两列的位置;
	反向滚动完全支持,此时前一列表会从最后一项开始显示;
	泛型支持，设置时更易获取数据;
	使用方便~
GitHub地址：https:/...]]></description><category></category></item><item><title><![CDATA[纠正：Android RecyclerView滚动到指定位置并置顶（滚动方法、移动置顶、定位滑动到指定位置item）]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/96967311</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/96967311</guid><author>candyguy242</author><pubDate>Tue, 23 Jul 2019 09:43:55 +0800</pubDate><description><![CDATA[最近博主发现让RecyclerView滑动到某一位置并置顶的博客一大堆，抄的是完全一模一样。此外，虽然这些博客“解决”了这些问题，但这种解决方案过于浅显、粗暴，甚至都违背了开发思想。遂在此纠正这种错误。

RecyclerView提供了几种移动的方法

scrollToPosition

scrollTo

scrollBy

smoothScrollBy

smoothScrollToPosit...]]></description><category></category></item><item><title><![CDATA[Android全屏中adjustResize的失效的解决方案 AndroidBug5497Workaround]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/94625972</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/94625972</guid><author>candyguy242</author><pubDate>Thu, 04 Jul 2019 16:07:36 +0800</pubDate><description><![CDATA[最近做项目中遇到Android全屏中adjustResize失效的问题，网上搜索了一堆后，基本上都是使用AndroidBug5497Workaround这个工具类，但是在实际使用中遇到软键盘不弹出时，整体高度不正确的问题。看了工具类的代码后，觉得计算全屏高度的方式有些绕了，既然Activity已经全屏，索性直接将屏幕高度作为软键盘不弹出的高度。代码如下：


package com.k...]]></description><category></category></item><item><title><![CDATA[Glide CircleImageView第一次加载不出来，动画失效的问题解决方案]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/91372684</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/91372684</guid><author>candyguy242</author><pubDate>Mon, 10 Jun 2019 13:49:42 +0800</pubDate><description><![CDATA[网上有很多关于这个问题的讨论，也有些解决方法，但最后基本上都会弃用CircleImageView，这样一来一些通过CircleImageView很方便实现的功能就没法用了，比如设置border。第一次加载不显示的问题归根结底是因为CircleImageView不支持TransitionDrawable，网上找了一个类似的库，很不错，也支持TransitionDrawable，使用方式...]]></description><category></category></item><item><title><![CDATA[VSCode中调试TypeScript （配置更新）]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/84680588</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/84680588</guid><author>candyguy242</author><pubDate>Sun, 02 Dec 2018 01:31:45 +0800</pubDate><description><![CDATA[网上搜了一下用VSCode调试TypeScript的资料，尝试后发现之前的配置方式已经失效，就连ts-node官方说明里的也过时了，一番搜索和尝试后，发现VSCode只要配置一下就可以运行和调试单个ts文件，方式如下：

1、在VSCode中，点击菜单 调试-增加配置，在项目根目录的.vscode文件夹下会生成一个launch.json文件，在launch.json中输入如下内容，name可以随意...]]></description><category></category></item><item><title><![CDATA[TypeScript 做微信小程序 资料汇总]]></title><link>https://blog.youkuaiyun.com/candyguy242/article/details/84667310</link><guid>https://blog.youkuaiyun.com/candyguy242/article/details/84667310</guid><author>candyguy242</author><pubDate>Fri, 30 Nov 2018 20:11:49 +0800</pubDate><description><![CDATA[小程序官网：
https://mp.weixin.qq.com
https://developers.weixin.qq.com/miniprogram/introduction/index.html
vscode开发微信小程序插件：
minapp;
vscode wxml;
wxml;
WeApp Snippets;
wechat-snippet;
Easy WXLESS;
Less Intel...]]></description><category></category></item></channel></rss>