去年很早之前,我就讲解过RecyclerView的使用,今天我们就在讲解CardView的时候,顺便再把RecyclerView同时讲解一下。...RecyclerView、CardView为用于显示复杂视图的新增Widget。接下来看看如何使用吧。...建议大家参考: Android新组件RecyclerView介绍,其效率更好(可点击) 更多推荐: 偷懒新姿势,打造属于RecyclerView的万能适配器Adapter和ViewHolder 一种新的...CardView CardView介绍 CardView是Android5.0之后为新增的控件,CardView是一个卡片布局,布局可以包含圆角和阴影,本质上CardView是一个FrameLayout...> 最后友情提醒一下,使用CardView别忘了添加依赖: compile 'com.android.support:cardview-v7:23.4.0' 这个系列的讲解和实例都会整理在一个demo里
在 JSX 中可以通过 onClick 这样的方式给一个元素添加一个事件处理函数,当然,在 HTML 中也可以用 onclick (小写 c),但在 HTML 中直接书写 onclick 一直就是为人垢病的写法...为什么 HTML 中直接使用 onclick 很不专业?...: 既然长期以来一直不倡导在 HTML 中使用 onclick,为什么在 React 的 JSX 中我们却要使用 onClick 这样的方式来添加事件处理函数呢?...JSX onClick 和 HTML onclick 的区别 上面 HTML onclick 的这些问题,在 JSX 中都不存在,JSX 的 onClick 事件处理方式和 HTML 的 onclick...JSX 中的组件使用 onClick,并不会产生直接使用 onclick 的 HTML,而是使用了事件委托(event delegation)的方式处理点击事件,无论有多少个 onClick 出现,其实最后都只在
使用RecycleView和CardView展示已安装应用的包名和图标 ① 获取安装的应用信息 public class ApkInfos { Context mContext;...e.printStackTrace(); } return Name; } } ② Adapter添加数据 public class AppsAdapter extends RecyclerView.Adapter...{ public CardView cardView; public ImageView imageView; public TextView textView_App_Name...(new View.OnClickListener() { @Override public void onClick(View view) {...= new ApkInfos(this).GetAllInstalledApkInfo(); AppsAdapter adapter=new AppsAdapter(this,appInfos); recyclerView.setAdapter
前言 官方文档传送门 RecyclerView是Google推荐用来替代ListView的. 整体使用感觉和ListView差不多, 但是比ListView是要多不少优点的....版本看着填, 最好和appcompat-v7保持一致....在分散对齐网格中显示项目 ---- CardView使用 我们将每一个CardView视为RecyclerView的item, 所以就不加布局, 直接上CardView了....效果图 ---- 给RecyclerView.Adapter添加点击事件 但是和ListView不同, item的点击事件要我们自己写, 当然, 也没有多麻烦....分成两个部分, 添加接口, 和设置监听.
在使用 CardView 之前,多少应该对它有一定的了解,下面将对其实现做简单的介绍。 自定义属性 CardView 继承自 FrameLayout,并在其基础上添加了圆角和阴影等效果。...class CardView extends FrameLayout { 这些属性的作用和用法如下: CardView_cardBackgroundColor 设置背景色 CardView_cardCornerRadius...设置z轴最大高度值 CardView_cardUseCompatPadding 是否使用CompadPadding 设置内边距,V21+的版本和之前的版本具有一样的计算方式。...CardView_cardPreventCornerOverlap 是否使用PreventCornerOverlap 在V20和之前的版本中添加内边距,这个属性为了防止内容和边角的重叠 CardView_contentPadding...最后这一系列操作的示意图大致是这样的: 这一系列的操作,将 CardView 的实现分成多个类,各个类只处理和自己相关的逻辑,简化了 CardView 自身逻辑。
CardView(这里用于作为recycleview的子项,用于显示水果) 1.1 实际上,CardView也是一个FrameLayout,只是额外提供了圆角和阴影等效果,看上去会有立体的感觉...实际上,CardView也是一个FrameLayout,只是额外提供了圆角和阴影等效果,看上去会有立体的感觉。...然后在app/build.gradle文件中声明RecyclerView、CardView这几个控件对应的库的依赖: compile 'com.android.support:recyclerview-v7...> 这里使用了CardView来作为子项的最外层布局,从而使得RecyclerView中的每个元素都是在卡片当中的。...AppBarLayout ---- 首先RecyclerView会把Toolbar给遮挡住的原因: 由于RecyclerView和Toolbar都是放置在CoordinatorLayout中的, 而前面已经说过
onclick(this.value)代码详解 function test(value){...type="radio" name="ra" value="0" οnclick="test(this.value)""/> 公司 2.onclick...(this)代码详解 一般标签中会使用href和onclick两种方式来进行进行页面跳转或执行动作,但是小编一般都会使用onclick来进行执行Ajax函数进行跳转,并同时使用οnclick=”xxxxxx
(5)列表和卡片 RecyclerView和CardView是support-v7包中新添加的组件,使用它们需要引用依赖com.android.support:recyclerview-v7:x.y.z...和com.android.support:cardview-v7:x.y.z。...的点击事件 @Override public void onClick(View v) { if (itemClickListener !...在XML布局文件中使用CardView的时候还需要引入其命名空间xmlns:cardview=http://schemas.android.com/apk/res-auto。...View.OnClickListener() { @TargetApi(Build.VERSION_CODES.LOLLIPOP) @Override public void onClick
中的使用 同在RecyclerView中的Item也可以使用DataBinding,在onCreateViewHolder中保存生成的Binding对象,在复用时,更新数据即可。...com.example.android.persistence.ui.ProductClickCallback"/> CardView...layout_height="wrap_content" android:minHeight="@dimen/product_item_min_height" android:onClick...="@{() -> callback.onClick(product)}" android:orientation="horizontal" android:layout_marginStart...android:text="@{@string/product_price(product.price)}"/> CardView
> CardView xmlns:android="http://schemas.android.com/apk/res/android"...wrap_content" android:padding="20dp" /> CardView...这里我们把0, 4, 和最后一个设置为图片型. 和之前在GridLayoutManager中设置填充父容器的position一样....部分, 区别处理文字item和带图item, 顺带一提, 类上继承的RecyclerView.Adapter的泛型要变更, public class MyRVAdapter extends RecyclerView.Adapter...holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick
---- 基础使用 要使用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...holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick...点击 ---- 搭配CardView 是不是这个点击看着没啥感觉, 没事, 我们换上CardView再来一次. 布局文件: cardview 给CardView加上水波纹点击特效: <?xml version="1.0" encoding="utf-8"?
this.imageUrl = imageUrl; } } 2、图片的展示 可以看到我是用瀑布流的方式来实现图片的展示,效果还不错,但其实实现起来也是很简单的 先写个图片的布局作为 RecyclerView...的 Item CardView xmlns:android="http://schemas.android.com/apk/res/android...> 可以看到我在 ImageView 的外面加了一个 CardView,这个一种卡片式布局,能让图片看起来就像一张卡片一样,相当的优雅、美观。...接着编写 Adapter,将数据和界面进行绑定 public class MeiziAdapter extends RecyclerView.Adapter<MeiziAdapter.MeiziViewHolder...holder.mIvMeizi.setOnClickListener(new View.OnClickListener() { @Override public void onClick
和RecyclerView结合实现下拉刷新,以及RecyclerView的数据适配器RecyclerView.Adapter的用法,还有RecyclerView中item的点击事件的实现方法; 卡片式CardView...-- CardView就是一个卡片样式的FrameLayout。...app:cardPreventCornerOverlap : 在v20和之前的版本中添加内边距, 这个属性是为了防止卡片内容和边角的重叠...app:cardUseCompatPadding : 设置内边距,v21+的版本和之前的版本仍旧具有一样的计算方式 --> CardView xmlns...holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick
关于FAB按钮的更多信息和使用案例请参考谷歌的官方设计规范。 运行效果 ?...: 我这个案例中使用了cardView compile 'com.android.support:recyclerview-v7:23.1.1' compile 'com.android.support...view.setOnClickListener(new View.OnClickListener() { @Override public void onClick...(View v) { Log.d("NormalTextViewHolder", "onClick--> position = " + getPosition()...fab:fab_type="mini" /> FAB的显示和隐藏 // 带动画的显示和隐藏 fab.show(); fab.hide(); // 不带动画的 fab.show(false); fab.hide
runner:1.1.0 com.android.support:appcompat-v7 androidx.appcompat:appcompat:1.0.0 com.android.support:cardview-v7...androidx.cardview:cardview:1.0.0 com.android.support:design com.google.android.material:material:1.0.0...androidx.recyclerview:recyclerview:1.0.0 com.android.support:support-v4 androidx.legacy:legacy-support-v4...androidx.recyclerview.widget.RecyclerView android.support.v7.widget.GridLayoutManager androidx.recyclerview.widget.GridLayoutManager....widget.CardView androidx.cardview.widget.CardView android.support.v7.graphics.Palette androidx.palette.graphics.Palette
RecyclerView 有很高的自由度,可以说只有想不到没有做不到,真是越用越喜欢。这次用超简单的方法,让 RecyclerView 带上折叠的效果。 效果是这样的。...我们知道,RecyclerView 可以通过设置 ItemDecoration 来实现列表的间隔效果,有没有想过要是把间隔设为负数会怎么样?...当然,我们要用 Material Design 的控件才有这个属性,这里我用的是 CardView。...= null) { if (view instanceof CardView) { ((CardView) view).setCardElevation(dp2px...elevation)); elevation += 5; } } } 复制代码 其中,setCardElevation 方法就是用来给 CardView
Material Design的基本概念 Material Design是Google设计的一套视觉语言,将优先的经典的设计原理与科技创新相结合,为开发者提供一套完成视觉和交互设计规范。...例如Google给出了沉浸式状态栏等“工具”,希望通过改变StatusBar和NavigationBar来给用户更强的融入感,专注于应用本身提供的内容。...} } }); } 想详细了解RecyclerView的使用,请参考《 一篇博客理解Recyclerview的使用》 DrawerLayout+NavigationView 使用...CardView就是一个ViewGroup,里面可以放置子布局 CardView android:layout_width="300dp"...兼容性开发 创建layout、layout-v21两套布局,根据下面的差别写两份CardView的布局文件。
match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> recyclerview.widget.RecyclerView...com.exmple.staggeredgridlayoutmanagertest; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.RecyclerView...android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.recyclerview.widget.RecyclerView...schemas.android.com/apk/res-auto" android:layout_width="100dp" android:layout_height="100dp"> cardview.widget.CardView...android:layout_height="match_parent" android:gravity="center" /> cardview.widget.CardView
此框架已经在我的项目中大规模使用,并且极大地提高了Recyclerview列表构建效率和复用能力。...这是一个大概的效果,Recyclerview DSL中,我们可以用DSL的风格去配置Item被如何加入到Rec,各个Item的风格是什么样子,具有很大的灵活性和拓展性。...bookShelf.name}" size = bookShelf.size url = bookShelf.imageUrl onclick...Recyclerview列表 方案:这种情况下,我们把 ItemManager拿出来单独操作即可,善用 autorefresh方法和 DiffUtil lateinit var itemManager:...(itemView) { val cardView: CardView = itemView.findViewById(R.id.cv_item_course) val textView
聊聊RecyclerView缓存机制和详细聊聊RecyclerView缓存机制,前者主要是介绍各个层级缓存的作用以及它们之间的区别,后者主要是从源码的角度讲解缓存是怎么实现的。...当我们穷尽所有方法,把RecyclerView调优方案都用尽了的时候,用好ViewCacheExtension就成了将RecyclerView性能优化到极致的最后一公里。...itemView布局文件代码如下: cardview.widget.CardView xmlns:android="http://schemas.android.com/apk...orientation="horizontal" android:padding="@dimen/small" android:textSize="14sp" /> cardview.widget.CardView...) //省略很多RecyclerView的常规操作比如setAdapter和LayoutManager mRecyclerView.setViewCacheExtension