目录 LiveData 前言 使用ViewModel+LiveData LiveData 前言   ViewModel通过将UI data保存在ViewModel类实例的内部,从而大大地将MVC中的 Controller 与 View 分割开,并且通过ViewModel,我们可以较为方便地解决Activity生命周期发生改变(比如由屏幕旋转引起的生命周期重建)时,UI data的保存以及重现问题.   下图展示了MVC中Controller与View的关系.简而言之就是,Controller负责…
理解android视图 对于android设备我们所示区域事实上和它在底层的绘制有着非常大的关系,非常多时候我们都仅仅关心我们所示,那么在底层一点它究竟是怎么样的一个东西呢?让我们先来看看这个图. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29kZWJvYg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">…
前言: 前面的学习基本上已经可以完成开发需求了,但是在项目中有时会遇到对请求做个缓存,当没网络的时候优先加载本地缓存,基于这个需求我们来学习一直okHttp的Cache-Control. okHttp相关文章地址: Android okHttp网络请求之Get/Post请求 Android okHttp网络请求之文件上传下载 Android okHttp网络请求之Json解析 Android okHttp网络请求之缓存控制Cache-Control Android okHttp网络请求之Retr…
原文标题:Kotlin for Android (IV): Custom Views and Android Extensions 原文链接:http://antonioleiva.com/kotlin-android-custom-views/ 原文作者:Antonio Leiva(http://antonioleiva.com/about/) 原文发布:2015-05-07 在阅读了扩展函数和默认值能做什么后,你可能想知道接下来是什么.如我们在Kotlin的第一篇文章说的那样,该语言可以使得…
通过控制视图模板路劲来动态切换主题 App::before(function($request) { $paths = Terminal::isMobile() ? array(__dir__.'/views/mobile') : array(__dir__.'/views/pc'); View::setFinder( new Illuminate\View\FileViewFinder(App::make('files'),$paths)); }); 首先说说为什么直接通过修改配置不行 pub…
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer.android.com/training/animation/zoom.html 这节课将展示如何做一个触摸缩放动画,这个动画非常常用,如在图库软件中点击照片的缩略图,把照片放大到整个屏幕范围: Zoom动画 如果你希望略过这部分内容直接看代码样例,可以直接下载样例代码,然后选择淡入淡出动画的例子…
分类:C#.Android.VS2015: 创建日期:2016-02-18 一.简介 Android内置了很多行视图模板,在应用程序中可直接使用这些内置的视图来呈现列表项. 要在ListView中使用内置的行视图呈现列表项,只需要通过Android.Resource.Layout类的属性指定资源的ID即可.例如: public class MainActivity : Activity { -- protected override void OnCreate(Bundle bundle) {…
本篇介绍angular控制视图的显示和隐藏: 通过给元素添加ng-show属性或者ng-hide属性来控制视图的显示或隐藏: ng-show: 绑定的数据值为true时,显示元素,值为false时,隐藏元素 ng-hide: 绑定的数据值为true时,隐藏元素,值为false时,显示元素 (其实只要用到其中一个就可以了) 下面来看个简单的例子,点击按钮可以显示/隐藏元素: <!DOCTYPE html> <html ng-app> <head> <title>…
在创建自定义ViewGroup前,读者首先需要理解Android绘制视图的方式.我不会涉及过多细节,但是需要读者理解Android开发文档(见3.5节)中的一段话,这段话解释如何绘制一个布局.内容如下: “绘制布局由两个遍历过程组成:测量过程和布局过程.测量过程由measure(int, int)方法完成,该方法从上到下遍历视图树.在递归遍历过程中,每个视图都会向下层传递尺寸和规格.当measure方法遍历结束,每个视图都保存了各自的尺寸信息.第二个过程由layout(int, int, int…
前言 LiveData与ViewMode是经常搭配在一起使用的,但是为了不太混乱,我还是拆分开来说明,此篇博客只讲解 LiveData 与 MutableLiveData的概念与使用方式(但是会涉及到ViewMode的部分代码). LiveData是干什么的? 由于LiveData和MutableLiveData都是一个概念的东西(只是作用范围不同)所以就不重复解释了,直接理解LiveData就可以明白MutableLiveData 直接理解LiveData的字面意思是前台数据,其实这其实是很准…