我正在探索RecyclerView,我很惊讶地看到RecyclerView它没有onItemClickListener().因为RecyclerView延伸
android.view.ViewGroup
并ListView扩展
android.widget.AbsListView
.不过,我解决我的问题写onClick在我的RecyclerView.Adapter:
public static class ViewHolder extends RecyclerView.ViewHolder implements OnClickListener {
public TextView txtViewTitle;
public ImageView imgViewIcon;
public ViewHolder(View itemLayoutView) {
super(itemLayoutView);
txtViewTitle = (TextView) itemLayoutView.findViewById(R.id.item_title);
imgViewIcon = (ImageView) itemLayoutView.findViewById(R.id.item_icon);
}
@Override
public void onClick(View v) {
}
}
Run Code Online (Sandbox Code Playgroud)
但我仍然想知道为什么谷歌被删除了onItemClickListener()?
是否有性能问题或其他问题?
这是一个如何ListView使用divider和dividerHeight参数在类中执行的示例:
<ListView
android:id="@+id/activity_home_list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@android:color/transparent"
android:dividerHeight="8dp"/>
Run Code Online (Sandbox Code Playgroud)
但是,我没有在RecyclerView课堂上看到这种可能性.
<android.support.v7.widget.RecyclerView
android:id="@+id/activity_home_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"/>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,可以直接定义边距和/或将自定义分隔视图添加到列表项的布局中,还是有更好的方法来实现我的目标?
我正在为回收者视图寻找相当于addHeaderView的东西.基本上我想要一个带有2个按钮的图像作为标题添加到列表视图中.是否有不同的方法将标题视图添加到回收站视图?指导的一个例子会很有帮助
编辑2(添加片段布局):
添加日志语句后,似乎getViewType只接收到0的位置.这导致onCreateView只加载一个布局:
10-26 16:32:53.766 5449-5449/co.testapp I/logger info? Adapter-> getItemCount: 5
10-26 16:32:53.766 5449-5449/co.testapp I/logger info? Adapter-> getItemCount: 5
10-26 16:32:53.766 5449-5449/co.testapp I/logger info? Adapter-> getItemCount: 5
10-26 16:32:53.766 5449-5449/co.testapp I/logger info? Adapter-> getItemCount: 5
10-26 16:32:53.766 5449-5449/co.testapp I/logger info? Adapter-> getItemCount: 5
10-26 16:32:53.766 5449-5449/co.testapp I/logger info? Adapter-> getItemCount: 5
10-26 16:32:53.766 5449-5449/co.testapp I/logger info? Adapter-> getItemCount: 5
10-26 16:32:53.766 5449-5449/co.testapp I/logger info? Adapter-> getItemCount: 5
10-26 16:32:53.766 5449-5449/co.testapp I/logger info? Adapter-> getItemCount: 5
10-26 16:32:53.766 5449-5449/co.testapp I/logger info? …Run Code Online (Sandbox Code Playgroud) 来自android开发人员(创建列表和卡片):
RecyclerView小部件是ListView的更高级和灵活的版本.
好吧,这听起来很酷,但是当我看到这个示例图片时,我对两者之间的区别感到非常困惑.

ListView使用自定义适配器可以轻松创建上面的图片.
那么,在什么情况下应该使用RecyclerView?
我最近遇到了RecycleViewAndroid 5.0发布的android ,它似乎RecycleView只是一个封装的传统ListView,其中包含了ViewHolder模式,它促进了视图的重用,而不是每次都创建它.
使用的其他好处是RecycleView什么?如果两者在性能方面具有相同的效果,为什么会选择使用RecycleView`?
编辑
我发现人们提出了类似的问题并且答案没有定论,在这里添加它们以保存记录.
我们应该使用RecyclerView来取代ListView吗?
为什么RecyclerView没有onItemClickListener()?和RecyclerView如何与Listview不同?
我注意到新的RecyclerView类,虽然它使事情变得更清洁,但缺乏我熟悉的许多功能:
这些是我使用的,但也许还有其他我错过了.
是否有任何教程或一些指导如何替换这些东西?
android android-listview android-gridview android-recyclerview
我CoordinatorLayout在我的活动页面中使用.在那里有ListViewapp栏下方.但是当我使用它ListView而不是它时它不起作用NestedScrollView.如果我把ListView里面NestedScrollView,ListView不扩大
android android-coordinatorlayout android-appbarlayout nestedscrollview
RecyclerView加入到v7 support library由于Android API 22日正式.许多人说它是一种增强功能,ListView并且通过互联网发布了很多关于它使用的简要介绍.但这些文章中的大多数都非常简单,浅而空洞.增强只是RecyclerView.ViewHolder,RecyclerView.ItemAnimator或RecylerView.SmoothScroller?recycling and reuse mechanism滚动期间项目的观点是否与ListView's的不同?而究竟是什么enhancement的RecyclerView了ListView?
任何答案,提示或链接都表示赞赏.提前致谢.
因此,Vogella似乎建议与RecyclerView相比,ListView完全被弃用.实际上并没有弃用,而是没有ListView是更好的选择.这是真的?commonsware书表明它可能更快更新.从现在开始有没有其他理由完全避免使用ListView?只是阅读一些例子,似乎RecyclerView在代码中添加了许多难度/卷积层,因此我希望避免使用这些,除非有一个非常好的理由(动画不是一个极好的理由)
我一直在阅读RecyclerView它并且它的优势超过了ListView我和他们之间的区别.
我没有得到的是何时使用ListView以及何时使用RecyclerView.RecyclerView是否意味着取代ListView?我是否必须用RecyclerViews替换所有ListView?
我RecyclerView在我的程序中使用,面对一些小问题,我相信你们中的一些人已经面对并解决了所有这些问题.
Separator color:使用DividerItemDecoration.java显示Items之间的分隔符,但如果我想更改分隔线颜色(如:默认为白色),则不知道在哪里进行更改
Clickable Row:点击仅在我连续点击文本时有效,但我想允许用户点击此链接后的任何地方(如:listview)
Wrap RecyclerView :我在recyclerview中只有两个记录,但它消耗全高(我想根据RecyclerView中的记录包装它,如:listview)
Ripple Effect:每当我点击RecyclerView中的任何项目时都没有获得RippleEffect,而当我点击列表项目获得Ripple效果时
RecyclerView Item Animation:当我点击RecyclerView中的任何项目时,如何实现动画效果
fragment_main.xml: -
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/btn_rounded"/>
Run Code Online (Sandbox Code Playgroud)
adapter_main.xml: -
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/textTitle"
style="@style/AppTheme.ListTextView"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
styles.xml: -
<style name="AppTheme.ListTextView" parent="android:Widget.Material.TextView">
<item name="android:gravity">left</item>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:padding">10dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
btn_rounded.xml: -
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#008f8471"/>
<stroke android:width="2dp" android:color="#ffffff" />
<corners android:radius="10dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
MainAdatper.java:-
@Override
public …Run Code Online (Sandbox Code Playgroud) android android-5.0-lollipop recycler-adapter android-recyclerview