自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阿秋的Blog

鲜衣怒马

  • 博客(35)
  • 资源 (1)
  • 收藏
  • 关注

原创 Flutter之await、async和Future问题type ‘Future<dynamic>‘ is not a subtype of type ‘List<XXX>‘

最近学习Flutter请求数据遇到的问题,简单记录下在解决该问题时,检索网上一堆博客,部分有用,部分都是抄袭的,看到了燃烧的鱼丸的一篇文章,分析了该问题,很到位,记录下。解决该问题就记住核心的两点:1.在Dart中,被await标记的函数返回值类型都是Future。2.调用被async标记的函数,必须要用await,并且吧,await必须要在async内部使用。感觉很抽象的样子,举个栗子:从燃烧的鱼丸来的例子这样就可以很清晰的明白上面两点什么意思了。匆忙记录一下...

2021-06-09 10:41:25 2425 1

原创 Flutter debug版本正常、release版本Crash问题的踩坑记录

最近学习Flutter,遇到的问题记录一下开发Flutter版本的产品时,在集成阿里云播放器之后一直正常开发。结果发现打了Release的包之后,在进入到播放器页面时,App会直接Crash。Flutter的报错信息也不是很明显。JNI DETECTED ERROR IN APPLICATION: java_class == nullin call to GetFieldIDfrom java.lang.String java.lang.Runtime.nativeLoad(java.lan.

2021-06-09 10:40:00 4236 6

原创 Android ExpandableListView折叠菜单的三层嵌套实现

前段时间项目的新功能里有些页面需要三层嵌套列表实现,虽然在移动端这种很丑,但是需求就是需求。本来想用各种View嵌套,然后发现系统有个ExpandableListView。就直接拿来用了。理论上来说,ExpandableListView的二级嵌套和三级嵌套没有本质区别,如果把二级嵌套的子级换成一个新的ExpandableListView,就可以实现三级嵌套。有了思路,关于ExpandableListView的三层嵌套就直接上手实现这里说下我的需求是有些数据是只有二级,有些数据是三级的。如果你.

2021-04-10 14:44:20 880 1

原创 Android异常之窗体泄漏Window Leaked

窗体泄漏原因解决方案手动处理系统管理最近新发布的版本中出现了Crash,看log中是Window Leaked,下面提供一下解决方案原因关于窗体泄漏的原因很简单。当我们在Activity上去构建一个置于Activity之上的Dialog或者PopupWindow时,这个窗口会依赖于Activity。如果在浮窗没有被dismiss时,Activity被finish,就会出现Window Leaked。知道了问题原因,就很好解决了。解决方案共有两种解决思路,第一种是手动做一个判断处理。第二种是使用

2021-03-18 14:42:09 583

原创 Android View自定义ImageView实现圆角

本篇Blog记录圆角ImageView的实现先说下思路获取配置属性判断裁剪方式绘制下面正式开始获取配置属性我们现在attrs中定义相关属性 <declare-styleable name="RoundImageView"> <attr name="radius" format="dimension" /> <attr name="leftTopRadius" format="dimension" /> .

2021-01-21 11:36:34 1357 12

原创 Android View自定义EditText实现矩形密码框

本篇Blog记录自定义EditText实现矩形密码框整体思路大致如下:绘制边框绘制分割线绘制黑色圆形输入监听处理下面按照上述步骤依次进行,在此之前,先做好准备工作。准备工作在开工之前,我们需要先在attrs.xml中定义相关属性 <declare-styleable name="PasswordEditText"> <attr name="inputMaxNum" format="integer" /> <attr n.

2021-01-21 10:39:39 678 4

原创 Android 相册选择图片、相机拍照上传功能实现(上)

本篇Blog记录从相册选择照片或拍照实现更换头像及上传功能的实现功能实现分为上下两篇

2021-01-16 19:25:38 5652 5

原创 Android ViewPager、ViewPager2的基本使用详解及区别

这里写自定义目录标题欢迎使用Markdown编辑器ViewPager2 + ItemViewViewPager2 + Fragment合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用

2021-01-13 18:01:10 3282 8

原创 Android通过Glide获取网络图片尺寸

在项目中做瀑布流的时候,想让图片根据屏幕比例缩放,最后没有使用,但是还是简单记录一下方法通过Glide我们可以在资源准备好之后,获取图片宽高Glide.with(mContext).load(list.get(position).getImageUrl()) .error(R.drawable.home_banner_load_error) .into(new SimpleTarget<Drawable>().

2020-12-24 10:14:09 1829 1

原创 NestedScrollView、ScrollView嵌套Recyclerview的冲突、显示不完整及焦点问题解决方案

最近项目中嵌套的控件比较多,遇到了不少问题,昨天解决了,赶紧记录下场景是ViewPager2嵌套NestedScrollView嵌套RecyclerView瀑布流效果图:主要问题如下:NestedScrollView / ScrollView嵌套RecyclerView冲突,不滚动、显示不完整、或者不显示问题NestedScrollView / ScrollView嵌套RecyclerView瀑布流双重滑动问题打开页面后定位到RecyclerView问题主要就这三个问题,下面按.

2020-12-21 09:28:00 2397 1

原创 Android自定义View 简单拖拽实现(一)

本篇开始学习自定义View的拖拽实现先上效果图原理先来说明一下实现原理,这里的核心方法是View.layout(left, top, right, bottom),通过该方法我们可以实现拖拽效果。原理如下:我们先获取屏幕触摸点的坐标,然后呢,需要获取控件的四个边框距离坐标原点(0,0)的距离。得到这些数据后,然后我们获取移动后的触摸点的坐标,两组触摸点的坐标做差,得到移动的x值和y值。最后,我们在四个边距原点的距离之上,加上触摸点差值,就可以得到移动后的控件的四个顶点的位置了。.

2020-11-30 17:48:28 687

原创 Android DataBinding在Activity、Fragment中的使用及数据共享

本篇记录Activity、Fragment使用DataBinding的不同方式,以及Activity下的不同Fragment间的数据共享开启DataBinding首先我们要在app gradle中开启DataBinding // Turn on DataBinding dataBinding { enabled true }更改布局文件然后我们要把布局文件开启DataBinding。下图是已经切换完成后的布局文件。我们只要按Alt + Enter键,就可.

2020-11-30 15:16:09 7154

原创 Android 点击两次Back键监听退出程序

本篇Blog记录点击两次Back键退出程序的写法效果如下我们通过该方法来实现 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { return super.onKeyDown(keyCode, event); }然后说明一下这两个方法的作用onKeyDown():当某个键被按下时会触发,但不会被任何的该Activity内的任何view处理。默认按下KEYCODE_BACK键后会回到.

2020-11-30 14:40:03 213

原创 RelativeLayout子控件实现LinearLayout的权重效果

本篇记录RelativeLayout中实现权重效果先上效果图然后上布局文件,根据代码来说<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="120dp" andro.

2020-11-23 09:59:34 925

原创 Android自定义AlertDialog及设置宽高无效问题

本篇记录自定义AlertDialog以及遇到的问题自定义AlertDialog先上效果图创建布局首先我们要创建想要的dialog布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_.

2020-11-22 18:25:19 2925

原创 Android项目:使用Jetpack组件搭建一个基于MVVM的RxAndroid(RxJava)、Retrofit、OkHttp的项目

通过对RxAndroid、Retrofit和OkHttp的学习,用它们整合搭建一个基于MVVM的项目。通过本篇Blog可以学习到如何利用这些框架整合搭建一个项目。下面开始进入正题,Blog目录按照Demo项目从下而上,先请求数据再进行业务逻辑处理最后到界面展示。本篇以获取公众号列表数据展示为例。准备工作添加依赖依赖的版本一定要匹配,不然会出现一些乱七八糟的问题。细节可以看我之前的Blog集成错误因为在Retrofit2中使用了JDK8的新特性,所以除了依赖,还要添加支持。 // .

2020-11-06 15:25:11 3274 5

原创 Android OkHttp Retrofit RxJava集成的常见Bug

在使用OkHttp Retrofit RxAndroid的过程中遇到了一些莫名的Bug。如下:ArrayIndexOutOfBoundsExceptionThrowing new exception ‘length=6; index=7’ with unexpected pending exception:java.lang.ArrayIndexOutOfBoundsException: length=6; index=6解决办法:这个网上不少都是说取消勾选Instant Run,就.

2020-11-05 18:12:08 447

原创 Android 网络请求(一):OkHttp3

本篇学习Android网络请求中最常用的okHttp

2020-11-05 17:46:01 339

原创 Java设计模式学习(一):单例模式

本篇开始学习设计模式。设计模式先说明一下什么是设计模式 ?设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。个人理解就是对于软件开发过程中遇到的一般性问题的比较标准的解决性方案,是前辈们在长期试错总结得到的经验。希望以后可以逐个学习。本篇从单例模式开始。单例模式单例模式的定义:单例模式(Singleton Pattern)是 Java 中最简单的设计模式之.

2020-11-02 18:08:01 104

原创 Android异步学习(三):初探 RxAndroid 3.0

前面我们学习了Android的异步,有Thread + Runnable和Handler、AsyncTask的两种方式,不了解的可以看以前的文章。这次学习RxAndroid的使用。

2020-11-02 12:50:28 498

原创 Android异步学习(一):Thread和Runnable

对于Android中异步的实现方式主要有以下三种:Java Thread、RunnableAndroid Handler、AsyncTaskRxAndroid以后会分别对三种方式进行说明,

2020-10-31 14:55:59 581

原创 Android异步学习(二):Handler和AsyncTask

上篇文章学习了Thread和Runnable的方式实现异步。Android异步学习(一):Thread和RunnableAndroid异步学习(二):Handler和AsyncTaskAndroid异步学习(三):RxAndroid这次学习Handler和AsyncTask。先来说明一下Handler和AsyncTask。AsyncTaskAsyncTask是由Android提供的轻量级异步工具。优点:使用简单,提供过程主要步骤的接口缺点:多个异步同时进行就会复杂HandlerHan

2020-10-31 14:40:59 338

原创 Android 通过轮询进行通知的学习

Android通知的两种方式先说一下Android获取服务器的数据通知用户的两种方式,对这两种方式,网上有很多详细的讲解,我这里只简单的说一下优缺点,大家根据自己的业务需求选择使用吧。轮询:基于拉取(Pull)。Android端间隔固定时间主动去请求服务端,获取相关数据,然后进行通知,相比而言,耗电,占用资源,消息可能会延迟。推送:基于推送(Push)。服务端有数据时去通知Android端...

2019-01-10 15:44:43 768

原创 Oracle 递归查询SQL

这两天项目上线前,又过了一遍代码,感觉有条SQL逻辑有问题,就拿出来分析了下,果然有问题,然后用到了递归查询,就记录下。基本结构select * from table_namestart with id = '' connect by prior id = preid本条数据的id是下一条数据的preid,向下遍历其中,id可以用关键字in。prior关键字在 = 前面和后面的结果...

2019-01-08 17:06:48 2051

原创 ViewPager禁止滑动效果实现

写在前面项目刚开始的时候,PM:你这个不用滑动,太花哨。。。我:现在主流的app,一般都能滑动的,这样也比较符合用户习惯…现在,PM:你这个怎么不能滑动啊,不符合用户需求啊,赶紧改了。。。我:…不管怎样,写都写了,还是扔出来大家看看重写ViewPager的方法我使用的是ViewPager+FragmentPagerAdapter禁止滑动效果,挺简单的,就重写一下ViewPager的...

2018-12-21 16:48:33 460

原创 Fragment切换无数据

原因关于Fragment 之间切换无数据,可能的原因有多个。我遇到的情况是因为FragmentPagerAdapter初始化的时候,传入参数FragmentManager对象的问题。网上还有其他情况,还没遇到,先不作讨论。Fragment关于Fragment,我们都知道有两个android.support.v4.app.Fragment和android.app.Fragment...

2018-12-21 15:57:56 371

原创 Fragment 和 Activity 的数据传递问题

写在前面最近的项目里,遇到的朋友圈的功能,朋友圈的模块嵌套在Fragment中,在发布动态时,跳转到另一个Activity,发布后返回到这个Fragment。返回之后,我没有请求后台去刷新,而是把用户发布的动态相关信息,通过Intent携带返回到Fragment。相关文件1.包含Fragment的Activity,InformixActivity2.发布填写动态信息的Activity,Ad...

2018-12-14 16:34:05 331

原创 仿微信朋友圈动态展开折叠功能 Android

写在前面文本过长的展开和折叠,我本来的思路是通过TextView的 getLineCount() 方法判断文本内容的行数,然后这样进行展开或折叠。实际上,调用这个方法,在视图没有完全绘制时,getLineCount得到的行数永远是0。这个问题,可以使用观察者去监听来解决,下面是具体操作。设置展示的最大行数按照PM的要求,把最大行数设置为5行: &amp;lt;!-- 内容 --&amp;gt; ...

2018-12-14 15:35:30 1051

原创 jQuery的简单特效

jQuery的简单特效,主要是显示与隐藏、淡入淡出、透明度、滑动以及回调。先贴总的代码<!DOCTYPE html><html><head> <title>jQuery特效</title> <script type="text/javascript" src="jquery-2.2.4.min.js"></script> <style type="text/css">

2017-10-18 20:32:37 677

原创 POST和GET的区别以及PUT和DELETE

1.GET把数据放在放在http的包头URL之后,如果是中文通过base64加密,英文和数字原样显示,而POST放在正文中2.GET对于数据长度有限制,POST没有限制3.GET相对POST更安全。GET采用明文传输,而POST可以明文也可以加密4.GET速度比POST更快应用场景 put:增 delete:删 post:改 get:查

2017-09-29 16:58:40 1106

原创 转发和重定向的区别

1.转发request.getRequestDispatcher(“路径”).forward(request,response)。转发的整个操作都是在服务器完成的。这是一个请求。一个响应。客户端不知道,request传输的数据信息是共享的2.重定向response.sendRedirect(“路径”)。这是两个请求,第一次传输的request数据是在重定向之后的页面获取不到的3.转发的地址栏不会改变

2017-09-29 16:05:53 238

原创 display和visibility的区别

重点内容 当display的取值为none和visibility的取值为hidden时,元素都不会显示,但是display使元素隐藏后不会占据元素原来的位置,但是visibility依旧会占据原来的位置

2017-09-29 14:52:58 241

原创 Servlet和CGI的区别

1.Servlet和CGI(Common Gateway Interface)可以实现相同的功能2.CGI由Perl语言编写,不是跨平台的,不可移植,新的应用场景需要重新编写CGI。Servlet由Java编写,有着Java语言的特性。健壮性、跨平台性3.CGI在每次客户端进行请求时,都会创建一个CGI程序,生成实例,在请求结束后,会销毁该实例,卸载程序。导致占用大量CPU资源,并且不能支持多用户服

2017-09-29 14:51:34 540

转载 CSS的三种布局模型,流动模型(Flow),浮动模型(Float),层模型(Layer)

[原文地址](http://blog.csdn.net/qq_18407565/article/details/70234834)css布局模型——-清楚了CSS 盒模型的基本概念、 盒模型类型, 我们就可以深入探讨网页布局的基本模型了。布局模型与盒模型一样都是 CSS 最基本、 最核心的概念。 但布局模型是建立在盒模型基础之上,又不同于我们常说的 CSS 布局样式或 CSS 布局模板。如果说布局

2017-09-29 08:41:36 1464

转载 CSS中的link和@import的区别

CSS中的link和@import的区别CSS中@import和link两种插入样式表方式有什么不同:转载自博客 使用CSS的方式主要有3种: 行内添加定义style属性值 页面头部进行内嵌 外部调用:外部调用又分为两种 1. link 2. @import格式XML/HTML代码<link rel="stylesheet" rev="stylesheet" h

2017-09-28 16:44:03 483

重写ViewPager方法实现禁止滑动效果

继承ViewPager,重写方法,实现左右无法滑动的效果。详情可以看下博客。

2018-12-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除