recyclerview最新版本|如何在Android Studio中添加RecyclerView-v7支持包

|

1. Android之RecyclerView介绍

从Android 5.0开始,谷歌公司推出了一个用于大量数据展示的新控件RecylerView,可以用来代替传统的ListView,更加强大和灵活。 RecyclerView是一个强大的滑动组件,与经典的ListView相比,同样拥有item回收复用的功能,这一点从它的名字Recyclerview即回收view也可以看出。 RecyclerView 支持 线性布局、网格布局、瀑布流布局 三种,而且同时还能够控制横向还是纵向滚动。 RecyclerView 基础使用关键点同样有两点: 另外,系统已经为我们提供了三个相关的实现类 LinearLayoutManager(线性布局效果)、GridLayoutManager(网格布局效果)、StaggeredGridLayoutManager(瀑布流布局效果)。 使用RecyclerView,当前版本需要直接在xml文件中定义: 效果图:

2. Android控件RecyclerView和ListView的异同

RecyclerView是一种新的视图组,目标是为任何基于适配器的视图提供相似的渲染方式。它被作为ListView和GridView控件的继承者,在最新的support-V7版本中提供支持。在开发RecyclerView时充分考虑了扩展性,因此用它可以创建想到的任何种类的的布局。但在使用上也稍微有些不便。这就是Android——要完成一件事情总不是那么容易。如果使用RecyclerView,你需要了解以下三个元素:RecyclerView.AdapterLayoutManagerItemAnimatorRecyclerView.AdapterRecyclerView包含了一种新型适配器。它与现在使用的适配器类似,但也稍有不同,例如它需要使用ViewHolder。使用时需要重写两个主要方法:一个用来展现视图和它的持有者,而另一个用来把数据绑定到视图上。这么做的好处是,第一种方法只有当我们真正需要创建一个新视图时才被调用,不需要检查它是否已经被回收。LayoutManager这个类决定视图被放在画面中哪个位置,但这只是它的众多职责之一。它可以管理滚动和循环利用。LayoutManager只有一个叫做LinearLayoutManager的实现类,它有1500多行代码。但从这一点就可以看出它有多复杂。管理器可以模拟列表视图(包括横向和纵向),但没有页眉和页尾。为LayoutManager编写子类不太适合新手,我们需要依靠社区来发掘RecyclerView的全部潜力。与这个例子一起,在短时间内我会上传一个GridView控件的实现。我认为这背后的关键是要仿照LinearLayoutManager的代码创建一个BaseLayoutManager,并且基于此进行扩展。或许support-v7的最终版本会提供更多、更好的实现。ItemAnimatorItemAnimator会根据适配器上收到的通知动画显示视图组的修改。基本上,它会自动显示添加和移除条目动画。这也不是一个简单的类,但我们发现DefaultItemAnimator已经可以运行得很好了。

3. recyclerview怎么导入

导入RecyclerView,CardView由于RecyclerView,CardView是放在support library v7包中,所以我们想要使用就必须要导包。下面就介绍下在Eclipse和Android Studio中是如何导入这两个包的。Eclipse:第一步:通过SDK manager下载/更新Android Support Libraries(5.0版本最新为21)第二步:导入CardView和RecyclerView项目(都在support v7中)1.在Eclipse中点击Import,导入Android项目2.导入CardView和RecycleView,路径为your sdk path\extras\android\support\v7\cardview(RecycleView则为相同目录下的recyclerview)3.导入时记得将工程到本地并建议重命名,这样方便以后管理例如:第三步:设置Library1..将两个工程设置为Library2..在主工程中引入这两个Library例如:通过这三步就可以将这两个包导入进来了。Android StudioAndroid Stuido相对于Eclipse简单的多:第一步:首先要确保已经将Android Support Libraries升级到最新.第二步:打开项目中的build.gradle文件,在dependencies中添加如下代码。[html] view plaindependencies {compile 'com.android.support:recyclerview-v7:21.+'compile 'com.android.support:cardview-v7:21.+'}第三步:重新Build一下工程。Build完成后就会发现这两个包就已经导入进来了

4. 如何在Android Studio中添加RecyclerView-v7支持包

一般来说,V7包在使用compile 'com.android.support:appcompat-v7:xx.x.x'的时候都是已经有了,但是不排除有时候无法RecyclerView的时候,这时候在File=>Project Strutrue=》Dependencies=>绿色+号=》Libary Dependency=》输入RecyclerView,找到com.android.support:recyclerview-v7:xx.xx.x确定即可 其中XX.XX.X版本要一致。手打望采纳

5. 简单实现RecyclerView版本的竖向翻页效果

1实现子页面撑满父布局,这样页面就只能显示一个个页面了 recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); 子布局 <LinearLayout xmlns:android=" http://schemas.android.com/apk/res/android " android:layout_width="match_parent" android:layout_height="match_parent" 类似于这种长宽都和父亲一样大 2 设置每次滑动滑动页面底部 SnapHelper snapHelper = new PagerSnapHelper(); snapHelper.attachToRecyclerView(recyclerView); 3监听页面加载到下一个页面 recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); LinearLayoutManager manager = (LinearLayoutManager) recyclerView1.getLayoutManager(); int first = manager.findFirstVisibleItemPosition(); if (first != last) { last = first; Toast.makeText(MainActivity.this, "" + first, Toast.LENGTH_SHORT).show(); } 参考项目:

6. 如何在Android Studio中添加RecyclerView-v7支持包

1、打开SDK Manager,在Extras树下找到Android Support Library,下载好支持包。RecyclerView在v7-21版本就出来了。我这里不用更新了,说明是最新的,怎么可能不行呢?

8、能导入包了,那就编写代码乐……

在extrasandroidsupportv7ecyclerviewlibs 目录下发现有android-support-v7-recyclerview.jar。要是上面的方法不行,这就是第二种解决办法了,直接导入到libs中了

7. Android控件RecyclerView和ListView的异同

Android是一个不断进化的平台,Android 5.0的v7版本支持包中引入了新的RecyclerView控件,正如官方文档所言,RecyclerView是ListView的豪华增强版。它主要包含以下几处新的特性,如ViewHolder,ItemDecorator,LayoutManager,SmothScroller以及增加或删除item时item动画等。官方推荐我们采用RecyclerView来取代ListView。 ViewHolder ViewHolder是用来保存视图引用的类,无论是ListView亦或是RecyclerView。只不过在ListView中,ViewHolder需要自己来定义,且这只是一种推荐的使用方式,不使用当然也可以,这不是必须的。只不过不使用ViewHolder的话,ListView每次getView的时候都会调用findViewById(int),这将导致ListView性能展示迟缓。而在RecyclerView中使用 RecyclerView.ViewHolder 则变成了必须,尽管实现起来稍显复杂,但它却解决了ListView面临的上述不使用自定义ViewHolder时所面临的问题。 RecyclerView.ViewHolder 被BaseAdapter使用,以将posiiton绑定到上面(可以通过API查看 RecyclerView.ViewHolder#getPosition() 方法)。 LayoutManager 我们知道ListView只能在垂直方向上滚动,Android API没有提供ListView在水平方向上面滚动的支持。或许有多种方式实现水平滑动,但是请想念我,ListView并不是设计来做这件事情的。但是RecyclerView相较于ListView,在滚动上面的功能扩展了许多。它可以支持多种类型列表的展示要求,主要如下: LinearLayoutManager ,可以支持水平和竖直方向上滚动的列表。StaggeredGridLayoutManager ,可以支持交叉网格风格的列表,类似于瀑布流或者Pinterest。GridLayoutManager ,支持网格展示,可以水平或者竖直滚动,如展示图片的画廊。ItemAnimator 列表动画是一个全新的、拥有无限可能的维度。起初的Android API中,删除或添加item时,item是无法产生动画效果的。后面随着Android的进化,Google的Chat Hasse推荐使用 ViewPropertyAnimator 属性动画来实现上述需求。 相比较于ListView, RecyclerView.ItemAnimator 则被提供用于在RecyclerView添加、删除或移动item时处理动画效果。同时,如果你比较懒,不想自定义ItemAnimator,你还可以使用 DefaultItemAnimator 。 Adapter ListView的Adapter中,getView是最重要的方法,它将视图跟position绑定起来,是所有神奇的事情发生的地方。同时我们也能够通过registerDataObserver在Adapter中注册一个观察者。RecyclerView也有这个特性, RecyclerView.AdapterDataObserver 就是这个观察者。ListView有三个Adapter的默认实现,分别是ArrayAdapter、CursorAdapter和SimpleCursorAdapter。然而,RecyclerView的Adapter则拥有除了内置的内DB游标和ArrayList的支持之外的所有功能。 RecyclerView.Adapter 的实现的,我们必须采取措施将数据提供给Adapter,正如BaseAdapter对ListView所做的那样。 ItemDecoration 在ListView中如果我们想要在item之间添加间隔符,我们只需要在布局文件中对ListView添加如下属性即可:1 android:divider="@android:color/transparent"2 android:dividerHeight="5dp" View Code有趣的是,RecyclerView在默认情况下并不在item之间展示间隔符。尽管Google的家伙有意地将这个问题遗留给我们去自定义间隔符,但这的确增加了开发人员的负担。如果你想要添加间隔符,你必须使用RecyclerView.ItemDecoration类来实现。或者,你可以应用官方示例中的 DividerItemDecoration.java 文件。 OnItemTouchListener ListView通过AdapterView.OnItemClickListener接口来探测点击事件。而RecyclerView则通过RecyclerView.OnItemTouchListener接口来探测触摸事件。它虽然增加了实现的难度,但是却给予开发人员拦截触摸事件更多的控制权限。 Others ListView可以设置选择模式,并添加MultiChoiceModeListener,如下所示:1 listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); 2 listView.setMultiChoiceModeListener(new MultiChoiceModeListener() { 3 public boolean onCreateActionMode(ActionMode mode, Menu menu) { … } 4 public void onItemCheckedStateChanged(ActionMode mode, int position, 5 long id, boolean checked) { … } 6 public boolean onActionItemClicked(ActionMode mode, MenuItem item) { 7 switch (item.getItemId()) { 8 case R.id.menu_item_delete_crime: 9 CrimeAdapter adapter = (CrimeAdapter)getListAdapter();10 CrimeLab crimeLab = CrimeLab.get(getActivity());11 for (int i = adapter.getCount() – 1; i >= 0; i–) {12 if (getListView().isItemChecked(i)) {13 crimeLab.deleteCrime(adapter.getItem(i));14 }15 }16 mode.finish();17 adapter.notifyDataSetChanged();18 return true;19 default:20 return false;21 }22 public boolean onPrepareActionMode(ActionMode mode, Menu menu) { … }23 public void onDestroyActionMode(ActionMode mode) { … }24 }); View Code而RecyclerView则没有此功能。 总之,通过比较我们可以发现,RecyclerView充满了大量的自定义功能,它可以用于实现复杂的列表或网格,但实现起来稍显得复杂。

8. ListView与RecyclerView的区别 Recycler有什么优势

RecyclerView 是Android-support-v7-21 版本中新增的一个 Widgets,官方对于它的介绍则是:RecyclerView 是 ListView 的升级版本,更加先进和灵活。简单来说就是:RecyclerView是一种新的视图组,目标是为任何基于适配器的视图提供相似的渲染方式。它被作为ListView和GridView控件的继承者,在最新的support-V7版本中提供支持。

9. 怎么查看自己版本的recyclerview

1、右键点击桌面“这台电脑”(windows8.1是这台电脑,windows7是计算机,windows xp是我的电脑)

选择属性,如图

3、windows7下载网站很多,网络一下就有了

10. Android Support Library 23.2有哪些新东西

新特性:支持Vector Drawable 和 Animated Vector DrawableVector drawables 让自己可以用一个定义在XML里的矢量图象替换多个png资源。而之前这一用法只局限于Lollipop以及更高的设备,VectorDrawable和AnimatedVectorDrawable现在可以分别通过两个新的支持库support-vector-drawable和support-animated-vector-drawable得到。Android Studio 1.4 中介绍了一种通过在编译时生成png的办法对vector drawable提供了有限的支持。为了禁用这个功能(节省支持库的空间,真正受益于新的库),需要在 build.gradle文件里添加vectorDrawables.useSupportLibrary = true :// Gradle Plugin 2.0+android {defaultConfig {vectorDrawables.useSupportLibrary = true}}需要注意这个新的属性只有2.0版本的Gradle Plugin中才有。如果正在使用Gradle 1.5 ,则应该使用// Gradle Plugin 1.5android {defaultConfig {generatedDensities = []}// This is handled for you by the 2.0+ Gradle PluginaaptOptions {additionalParameters "–no-version-vectors"}}可以使用兼容到API7的VectorDrawableCompat和兼容到API11或者更高的AnimatedVectorDrawableCompat。鉴于安卓加载drawable的方式,并不是每个接受drawable id的地方(比如在一个XML文件中)都支持加载vector drawable。幸好,AppCompat 添加了几个功能让自己更容易使用新的vector drawable。首先,当自己和ImageView(或者例如 ImageButton 和 FloatingActionButton这样的子类) 一起使用AppCompat的时候,可以使用新的app:srcCompat属性来饮用 vector drawable(而任何其它drawable则用 android:src):<ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"app:srcCompat="@drawable/ic_add" />并且,如果要在运行时动态的改变drawable,可以使用和之前相同的 setImageResource() 方法 - 这点并没有变。使用AppCompat和app:srcCompat是在app中集成vector drawable最简单可靠的方式。会发现在Lollipop之前直接在app:srcCompat之外引用vector drawable会失败。但是AppCompat却支持其它drawable 容器比如StateListDrawable, InsetDrawable, LayerDrawable, LevelListDrawable, 或者 RotateDrawable加载vector drawable。使用这种间接的方法,可以在这种情况下使用vector drawable,比如TextView的android:drawableLeft 属性,本来在正常情况下,它是不支持vector drawable的。AppCompat夜间白天主题虽然在能各个版本的app中使用矢量图像已经是一个很大的变化了,但是这个版本还在AppCompat中添加了一个新主题:Theme.AppCompat.DayNight。在API 14,之前,DayNight theme以及它的继承者DayNight.NoActionBar, DayNight.DarkActionBar, DayNight.Dialog等和light是一样的。但是在API 14 a或者跟高设备上,这个主题可以轻易的让app既支持Light又支持 Dark theme。可以根据是否为“night”从一个Light 主题切换到Dark主题。默认情况下,是不是‘night’跟系统的值(从UiModeManager.getNightMode()得到)是对应的,但是可以使用AppCompatDelegate中的方法覆盖这个值。对于这个贯穿整个app(直到进程重启)的默认值,可以使用静态的AppCompatDelegate.setDefaultNightMode()方法去设置,或者可以通过getDelegate()得到一个AppCompatDelegate,并使用setLocalNightMode()去改变当前的Activity或者对话框。当使用AppCompatDelegate.MODE_NIGHT_AUTO时,一天的时间和最近的地点(如果自己的app有地理位置权限)会被用于自动切换白天和黑夜,而MODE_NIGHT_NO和MODE_NIGHT_YES则分别用于强制主题从不或者总是使用dark theme。在使用DayNight主题的时候,务必要彻底测试一下app,因为硬编码颜色容易造成可读性差的文字和图标(没看懂)。如果自己的text使用的是标准的 TextAppearance.AppCompat样式或者颜色是从主题里(比如从 android:textColorPrimary)得到的,会发现这些都会自动帮自己更新。但是,如果想专门为夜间模式自定义任何资源,可以在AppCompat的 night resource qualifier folder(夜间资源目录)里自定义需要的任何资源。为了让对这个模式的支持变得更轻松,请考虑使用标准的颜色或者利用AppCompat的tinting (着色)。Design Support Library: Bottom SheetsDesign Support Library 提供了许多 material design 设计模式的实现。这个版本让开发者可以轻松的把 bottom sheet 添加到他们的app中。通过为 CoordinatorLayout的子View设置一个BottomSheetBehavior(比如:app:layout_behavior=”android.support.design.widget.BottomSheetBehavior”),将自动得到能在5个状态间切换的触摸检测功能:STATE_COLLAPSED: 这是折叠状态 ,也是默认的状态。只是在底部边沿显示布局的一部分。其高度可以使用 app:behavior_peekHeight 属性来控制(默认是0)。STATE_DRAGGING: 这是中间状态,此时用户直接上下拖动 bottom sheet。STATE_SETTLING: 视图被释放之后-到达最终位置之间的瞬间。STATE_EXPANDED: bottom sheet完全展开的状态。 整个bottom sheet都是可见的(如果它的高度小于包含它的CoordinatorLayout)或者整个CoordinatorLayout都是填满的。STATE_HIDDEN: 默认禁用是的(使用app:behavior_hideable属性来启用 ), 如果这个启用,用户可以在 bottom sheet中下滑以完全隐藏bottom sheet记住,bottom sheet 中的滚动容器必须支持嵌套滚动(比如,NestedScrollView, RecyclerView, 或者 API 21+上的ListView/ScrollView )。如果想要收到状态的回调,可以添加一个BottomSheetCallback:// The View with the BottomSheetBehavior View bottomSheet = coordinatorLayout.findViewById(R.id.bottom_sheet);BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheet);behavior.setBottomSheetCallback(new BottomSheetCallback() {@Overridepublic void onStateChanged(@NonNull View bottomSheet, int newState) {// React to state change}@Overridepublic void onSlide(@NonNull View bottomSheet, float slideOffset) {// React to dragging events}});虽然BottomSheetBehavior针对的是 持久性型 bottom sheet 的情景,但是这个版本还提供了BottomSheetDialog 和 BottomSheetDialogFragment 来完成 模态 bottom sheets 的用例。把AppCompatDialog 或者 AppCompatDialogFragment替换成相应的bottom sheet版本即可。让自己的对话框使用bottom sheet风格的样式。Support v4: MediaBrowserServiceCompatSupport v4 library 作为许多支持库的基础,包含了许多在较新版本中才引入的framework功能(以及几个独特的功能)。在上个版本中添加的 MediaSessionCompat 类为媒体播放提供了坚实的基础,这个版本咱们添加了MediaBrowserServiceCompat 和 MediaBrowserCompat ,把最新的API(甚至是Marshmallow中添加的那些)向后兼容到API 4 及以上。这让支持Android Auto上的音频播放,Android Wear 上的媒体浏览变得简单多了。另外,还为连接media playback service和UI提供了一个标准的接口。RecyclerViewRecyclerView 控件提供了灵活一种创建列表和网格的基本方案,而且还支持动画。这个版本为 LayoutManager API带来了一个非常激动人心的新特性:自动测量!让RecyclerView可以根据其内容的大小调整自己。这意味着以前那些无解的场景,比如对RecyclerView的一个dimension 使用WRAP_CONTENT成为了可能。会发现所有的内置LayoutManager现在都支持自动测量。因为这个变化的原因,得仔细检查 item view的 layout parameters 了:以前会被自动忽略的 layout parameters(比如在滚动方向上的MATCH_PARENT ),现在会被完全考虑进去。如果有一个自定义的LayoutManager,且没有继承自内置的LayoutManager,那么这就是一个可选的API - 需要调用setAutoMeasureEnabled(true) 并且根据这个方法的Javadoc中的描述做一些微小的改变。注意,虽然RecyclerView可以让自己的子View动画,但是它不能动画自己的边界改变。如果想要让RecyclerView的边界变化也呈现动画,可以使用 Transition API。Custom TabsCustom Tabs 可以在保持app风格与外观的同时无缝切换到web内容页。而在这个版本中,可以向一个显示在web内容旁边的底部bar添加操作项。注:以前只能在顶部的溢出菜单里面添加。有了新的addToolbarItem()方法,就可以添加最多5个(MAX_TOOLBAR_ITEMS)actions到bottom bar 上,并使用setToolbarItem() 来更新它们。类似于之前的setToolbarColor()方法,可以找到一个 setSecondaryToolbarColor()方法来自定义bottom bar的背景颜色。Leanback for Android TVLeanback 库给了把app带到Android TV上所需要的工具, 里面有许多专门为TV而优化的控件。这个版本的GuidedStepFragment 做了一些列重大改进。最大的改变可能就是引入了action button的第二列(通过重写onCreateButtonActions()或者调用 setButtonActions()来添加)。不需要滚动完一个 GuidedActions列表就能到达所有的action。说到GuidedAction,有几个让输入更佳丰富的新特性,包括editable descriptions (通过descriptionEditable()), 表单中dropdown里面的sub action(用subActions()),以及GuidedDatePickerAction。


赞 (0)