3.如何使用RecylerView和CardView在android studio中 在build.gradle中添加依赖再编辑即可 compile 'com.android.support:recyclerview-v7...</LinearLayout 从代码中,我们会发现使用了CardView控件以及在控件中添加简易的两个TextView 现在来介绍CardView的一些常用属性,这也是现在卡片效果的关键所在 card_view...android:attr/selectableItemBackground” 这个可以使CardView被点击后出现波纹效 通过以上常用属性可以使CardView出现各种不同的效果 现在回到Activity...(): 创建新的View,被LayoutManager所调用 OnBindViewHolder():将数据与界面进行绑定 getItemCount() :返回数据的数量 在Activity中,代码如下:...我们获取LayoutManager对象,设置其方向为水平方向,并设置RecyclerView的LayoutManager 然后实例化adapter对象,传入上下文和假数据lists,并设置RecyclerView.adapater
使用RecycleView和CardView展示已安装应用的包名和图标 ① 获取安装的应用信息 public class ApkInfos { Context mContext;...Intent.ACTION_MAIN,null); intent.addCategory(Intent.CATEGORY_LAUNCHER); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK...| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED ); List resolveInfoList = mContext.getPackageManager...{ public CardView cardView; public ImageView imageView; public TextView textView_App_Name...ApplicationPackageName); viewHolder.imageView.setImageDrawable(drawable); //添加点击事件直接打开已安装的应用
有些时候我们需要获取到View的宽高信息。在onCreate和onResume中尝试view.getWidth()或是view.getHeiht()时,我们会发现获取到的是0。...Activity视图在创建完成后,各个子view并不一定被加载完成。 获取宽高正确的方法有哪些呢?...方法1 - 在Activity的onWindowFocusChanged获取宽高 @Override public void onWindowFocusChanged(boolean hasFocus)...从log的时间上可以看出,在view加载完毕后,执行的Runnable。 应用 - 动态调整ImageView的宽高 获取到view的宽高后,我们可以动态地调整ImageView的高度。...xml中设置scaleType为fitXY。已知ImageView的宽度是固定的,我们可以调整高度。
然后在app/build.gradle文件中声明RecyclerView、CardView这几个控件对应的库的依赖: compile 'com.android.support:recyclerview-v7...> 这里使用了CardView来作为子项的最外层布局,从而使得RecyclerView中的每个元素都是在卡片当中的。...CardView由于是一个FrameLayout,因此它没有什么方便的定位方式,这里只好在CardView中再嵌套一个LinearLayout,然后在LinearLayout中放置具体的内容。...这样RecyclerView的适配器便准备好了,最后修改MainActivity中的代码: ? ? ?...,数组存放多个Fruit的实例,每个实例代表一种水果; 在initFruits()方法中,先清空fruitList中的数据,再使用一个随机函数,从刚才定义的Fruit数组中随机挑选一个水果放入到fruitList
↳ android.widget.FrameLayout ↳ android.support.v7.widget.CardView ---- 从官方的文档中我们可以看出: CardView:有圆角的背景和阴影的...CardView 在 Android 5.0(API 级别 21)及更高版本中使用真实高度与动态阴影,而在早期的 Android 版本中则返回编程阴影实现。...如需了解详细信息,请参阅保持兼容性 使用以下属性定制 CardView 的外观: 如果要在布局中设置圆角半径,请使用 card_view:cardCornerRadius 属性。...card_view:cardPreventConrerOverlap 在V20和之前的版本中添加内边距,这个属性为了防止内容和边角的重叠 一般来说和RecyclerView搭配起来使用效果更加~ --...-- 如何使用 添加依赖项 RecyclerView 与 CardView 小组件为 v7 支持内容库的一部分 将这些 Gradle 依赖项添加至您的应用模块 dependencies { ..
聊聊RecyclerView缓存机制和详细聊聊RecyclerView缓存机制,前者主要是介绍各个层级缓存的作用以及它们之间的区别,后者主要是从源码的角度讲解缓存是怎么实现的。..."减少ItemView的嵌套层级,让布局尽量轻量级"或者减少ItemView的inflate时长会是RecyclerView性能优化的众多Tips中的其二。这样的方案当然没问题。...我们知道Android每帧的耗时超过16ms就要掉帧了。所以相对来说比较卡顿。实际运行程序,也会发现跳转到该Activity明显不流畅。 对比下优化后的效果。...优化方案 程序UI模型图如下,从AActivity跳转到BActivity,它有一个RecyclerView列表。...{ //从AActivity的缓存中拿View,Demo实例,实际业务可以写的更优雅 if (AActivity.sCustomViewCaches.size
引言 CardView是Android 5.0系统之后引入的众多控件之一,实现之后的效果也是比较酷的,它经常被用在RecyclerView和ListView中的Item中。...今天我们就来了解一下CardView的属性,然后使用CardView和RecyclerView结合实现一个可以拖拽Item的布局。...CardView的属性 CardView继承自FrameLayout,所以子控件的布局规则和FrameLayout的一样,是按照层次堆叠的 下面是CardView的一些常用属性: ?...CardView应用在RecyclerView中 CardView通常会应用在RecyclerView和ListView中,今天我们就讲一讲如何应用在RecyclerView中。...viewHolder, int actionState):从静止状态变为拖拽或者滑动的时候会调用该方法,参数actionState表示当前状态。
(5)列表和卡片 RecyclerView和CardView是support-v7包中新添加的组件,使用它们需要引用依赖com.android.support:recyclerview-v7:x.y.z...现在Android 5.X提供了三种Transition类型: 进入和退出动画:两者又包括了explode(分解)、slide(滑动)和fade(淡出)三种效果; 使用方式:假设Activity从A跳转到...).toBundle()); 然后在B的onCreate方法中添加如下代码: //首先声明需要开启Activity过渡动画 getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS...使用方式:假设Activity从A跳转到B,那么将A中原来的startActivity改为如下代码: //单个共享元素的调用方式 startActivity(intent,ActivityOptions.makeSceneTransitionAnimation...Activity A和B的布局文件中为共享元素组件添加android:transitionName="xxx"属性。
image.png StaggeredGridLayoutManager StaggeredGridLayoutManager(瀑布流布局效果),是配合RecyclerView使用的。...实战代码 activity_main.xml: <?xml version="1.0" encoding="utf-8"?...(TextView) view.findViewById(R.id.info_text); textView.setText(info); //手动更改高度,不同位置的高度有所不同...schemas.android.com/apk/res-auto" android:layout_width="100dp" android:layout_height="100dp"> <androidx.cardview.widget.CardView...android:layout_height="match_parent" android:gravity="center" /> </androidx.cardview.widget.CardView
前言 RecyclerView在Android界面开发当中是很重要的, 那掌握它也是很必要的....但是有些时候会觉得它很厚重, 这里就从RecyclerView的基础一直说到扩展, 让你把RecyclerView学薄了. RecyclerView官方文档也是非常厚重....---- 基础使用 要使用RecyclerView在Android Studio 2.x(以下简称AS), 要这样: compile 'com.android.support:cardview-v7...:cardview-v7:26.1.0' implementation 'com.android.support:recyclerview-v7:26.1.0' 之后在布局文件中写入如下代码就引入了RecyclerView..., 用了更基类的RecyclerView.ViewHolder.
去年很早之前,我就讲解过RecyclerView的使用,今天我们就在讲解CardView的时候,顺便再把RecyclerView同时讲解一下。...RecyclerView、CardView为用于显示复杂视图的新增Widget。接下来看看如何使用吧。...是复用的,在RecyclerView中,是把ViewHolder作为缓存的单位了,然后convertView作为ViewHolder的成员变量保持在ViewHolder中,也就是说,假设手机屏幕可显示10...注意的是:RecyclerView不提供ListView中的setOnItemClickListener方法,我们可以在ViewHolder中添加类似的点击事件。...Adapter和Activity中的全部代码太多,而且微信对代码支持不是很好,我就不贴出来了,想看代码的去下载demo就可以了。
savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_animation)...(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); Log.i...AnimationViewHolder(View view) { super(view); content = view.findViewById(R.id.content); } } } 三、逻辑分析 首先实现的效果是图片从做到右显示...ImageView的父容器为圆角布局的话,那就采用CardView,通过改变其属性 app:cardCornerRadius=”15dp” 实现,不要使用其他诸如LinearLayout的父容器,设置其...这个实现我们首先需要在图片的点击事件中判断当前动画是否还是运行isRunning(),如果运行的话调用animator的cancel()方法取消动画,然后进行图片的位置的复位;如果我们不进行复位操作,
谷歌在推出Android5.0的同时推出了一些新控件,Android5.0中最常用的新控件有下面5种。 ? 1....CardView被包装为一种布局,并且经常在ListView和RecyclerView的Item布局中,作为容器使用。...Patelle(调色板) Patelle是一个辅助类,它的作用是从图片中获取突出的颜色。...(柔和的) – Muted Dark(柔和的,黑暗的) – Muted Light(柔和的,明亮的) Patelle的使用也非常简单: // 获取应用程序图标的Bitmap bitmap=...,Patelle,CardView是在单独的支持包里面,不在appcompat-v7及其依赖子包中 要使用它们,必须导入它们的依赖包 compile 'com.android.support:recyclerview-v7
CardView介绍 CardView是Android 5.0系统引入的控件,相当于FragmentLayout布局控件然后添加圆角及阴影的效果;CardView被包装为一种布局,并且经常在ListView...和RecyclerView的Item布局中,作为一种容器使用。...CardView应该被使用在显示层次性的内容时;在显示列表或网格时更应该被选择,因为这些边缘可以使得用户更容易去区分这些内容。 使用 先看效果 ?...); setContentView(R.layout.activity_main); cardView = (CardView)findViewById(R.id.cardView); cardView.setRadius...} } 好,已结束CardView难度不大,当是实用性及及效果是非常棒的,值得你拥有!
但是,BaseActivity派生出N个Activity,BaseActivity中的广播就会执行N次,导致弹框重复添加,所有在广播中判定,只有在栈顶的Activity才能处理广播消息。...实现 获取任务栈 必须添加权限: <!...--获取Activity任务栈 权限-- <uses-permission android:name="android.permission.GET_TASKS" / 具体实现,获取栈以及其中内容:...// 获取activity任务栈 ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE...() 之后进行对比,即可在非目标Activity避开处理 以上这篇获取Activity栈,判断当前Activity位置的方法就是小编分享给大家的全部内容了,希望能给大家一个参考。
本文是介绍 RecyclerView 入门 系列文章 的第三篇。如果您已经对创建 RecyclerView 有了一定的认识,请继续阅读本文。如果尚未熟悉,建议您首先阅读本系列中的 第一篇文章。...相关的响应事件虽然数不胜数,但是它们均需要通过 onClick() 来实现。 定义点击动作 在创建监听器之前,在 Activity 类中添加一个函数用于处理点击之后的响应操作。 (FlowerDiffCallback()) 在 Activity 类中,在初始化 Adapter 的时候传入刚刚创建的点击事件函数。...(itemView) 在初始化的代码中,调用 itemView 的 setOnClickListener{}。...现在您的 RecyclerView 可以响应点击事件了。 编程快乐! 下一步 请查阅包含 onClick() 的 完整示例。 感谢您阅读 RecyclerView 系列 文章的第三篇。
Activity有四种启动模式,一般为默认。 当Activity的启动模式为singleTask的时候,通过Intent传值,getIntent是接收不到值的,为null。...因为不同的启动模式,走的方法也不一样。当页面再次被调用的时候,先走onNewIntent方法再走onRestart。...所以需要重写onNewIntent方法,而且此方法在Activity Finish之后是不执行的。...//finish之后是不执行的 @Override protected void onNewIntent(Intent intent) { super.onNewIntent...(intent); setIntent(intent);//设置新的intent String data = getIntent().getStringExtra
都掌握的怎么样啊 安卓中一些常用控件学习得差不多了,今天再来学习一个新的控件CardView,在实际开发中也有非常高的地位。...这里有一点需要值得注意,之前学习到的控件属性都是android:开头的,而这里所列的属性是app:开头的,如果继续使用默认的会提示找不见对应属性,需要我们定义一个app命名空间,在布局文件中需要加入xmlns...); }} 修改启动的Activity,运行程序可以看到下图所示效果。...三、CardView示例2 CardView被包装为一种布局,并且经常在ListView和RecyclerView的Item布局中,作为一种容器使用。...接下来简单定义一个CardView的item项,并在Java代码中修改CardView的属性,关于结合ListView和RecyclerView的部分比较简单,这里不做过多介绍。
DataBinding介绍 DataBinding类似于ButterKnife,可以将数据结构与XML绑定,节省了很多Activity中UI的代码,比如说findViewById等。...DataBinding的使用 在app模块的build.gradle中添加DataBinding配置: android { ......比如:包名为com.example.aactest的应用,在上述目录下会生成com.example.aactest.databinding的文件夹,而activity_main.xml就会生成ActivityMainBinding.java...文件 使用DataBinding绑定具体数据 在生成的ActivityMainBinding文件中,就会有数据部分的set,get方法,在调用完set方法更新完Binding中的数据后,对应的View...中的使用 同在RecyclerView中的Item也可以使用DataBinding,在onCreateViewHolder中保存生成的Binding对象,在复用时,更新数据即可。
不过MergeAdapter是在RecyclerView 1.2.0版本中才新增的,而官网目前RecyclerView的最新稳定版本还是1.1.0。...可能你没有想到这个界面会是一个RecyclerView,但是它确实就是如此,界面中的内容主要分成了如上图所示的3部分。 那么一个RecyclerView中怎么能显示3种完全不同的内容呢?...从名字上就可以看出来了,一个是用于获取元素位于当前绑定Adapter的位置,一个是用于获取元素位于Adapter中的绝对位置。 如果觉得我上面的解释还不够清楚,通过下面的示例看一下你立马就能明白了。...很明显,我们获取到的点击位置是元素位于BodyAdapter中的位置。...结果一目了解,获取到的点击位置是元素位于合并后Adapter中的位置。
领取专属 10元无门槛券
手把手带您无忧上云