Questions tagged «android-recyclerview»

RecyclerView小部件是ListView和GridView的更高级,更灵活的版本。

7
onCheckedChanged自动调用
我从recyclerview中有一个开关,并且从DB检索数据后数据显示在recyclerview中。打开recyclerview时,我读取了DB,并且如果DB中的字段为“ Y”,则启用该开关,否则将禁用该开关。现在问题随之而来,也调用了onCheckedchanged侦听器,我希望仅当用户手动设置开关时才调用onCheckedChanged。 在打开下面的recyclerview时执行: holder.enabledisable.setChecked(messengerRecord.get_is_valid().equalsIgnoreCase("Y")); ViewHolder类: public class viewHolder extends RecyclerView.ViewHolder implements CompoundButton.OnCheckedChangeListener{ public SwitchCompat enabledisable; public viewHolder(View v) { enabledisable = (SwitchCompat) v.findViewById(R.id.enabledisable); enabledisable.setOnCheckedChangeListener(this); ................................... ................................... 刚打开recyclerView时调用的OncheckedChanged方法: @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { Log.v("ranjith","called oncheckedchanged"); MessengerRecord rec; rec = dbHelper.getRecord(descview.getText().toString()); switch (buttonView.getId()) { case R.id.enabledisable: if (isChecked) { …

13
RecyclerView中的快速滚动
我正在尝试将新RecyclerView类用于一种情况,在这种情况下,我希望组件在滚动时能够捕捉到特定元素(以旧AndroidGallery为例,此类列表带有中心锁定项)。 到目前为止,这是我采用的方法: 我有一个接口,ISnappyLayoutManager其中包含一个方法,getPositionForVelocity该方法在给定初始掠过速度的情况下计算视图应在哪个位置结束滚动。 public interface ISnappyLayoutManager { int getPositionForVelocity(int velocityX, int velocityY); } 然后,我有了一个类,该类SnappyRecyclerView继承RecyclerView并覆盖了它的fling()方法,以使视图精确到正确的数量: public final class SnappyRecyclerView extends RecyclerView { /** other methods deleted **/ @Override public boolean fling(int velocityX, int velocityY) { LayoutManager lm = getLayoutManager(); if (lm instanceof ISnappyLayoutManager) { super.smoothScrollToPosition(((ISnappyLayoutManager) getLayoutManager()) .getPositionForVelocity(velocityX, velocityY)); } return true; …

4
使用LinearLayoutManager滚动到RecyclerView的顶部
我在其中有一个片段RecyclerView与LinearLayoutManager其中有CardView项目。单击时有一个浮动操作按钮,项目应滚动到顶部。我已经尝试使用scrollToPosition以及和以及scrollToPositionWithOffset一起RecyclerView使用LinearLayoutManager,如下所示。但这根本没有效果。为什么会这样呢?谁能帮我一下。 而且我已经将xmlRecyclerView直接放置SwipeRefreshView在xml文件中。我setFloatingActionButton尽快将适配器设置为RecyclerView。 public void setFloatingActionButton(final View view) { float = (android.support.design.widget.FloatingActionButton) getActivity().findViewById(R.id.float); float.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mRecyclerView.smoothScrollToPosition(0); android.support.design.widget.Snackbar.make(view, "Scrolled to Top", android.support.design.widget.Snackbar.LENGTH_SHORT) .setAction("Ok", new View.OnClickListener() { @Override public void onClick(View v) { LinearLayoutManager llm = (LinearLayoutManager) mRecyclerView.getLayoutManager(); llm.scrollToPosition(0); } }) .setActionTextColor(getActivity().getResources().getColor(R.color.coloLink)) .show(); } }); }



8
在刷新期间使用SwipeRefreshLayout切换片段时,片段会冻结,但实际上仍然可以工作
更新:我认为它工作正常。但是经过一些测试后,问题仍然存在*嗅* 然后,我制作了一个简单的版本,以查看确切发生了什么,并且我知道应该分离的令人耳目一新的片段仍然留在那里。或者恰好是旧片段的视图留在新片段之上。由于我原始应用程序的RecyclerView的背景不是透明的,因此事实证明了我之前所说的。 更新结束 我有这样的MainActivity布局: <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- As the main content view, the view below consumes the entire space available using match_parent in both dimensions. --> <FrameLayout android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" /> <!-- android:layout_gravity="start" tells DrawerLayout to treat this as a sliding drawer on the left side …

11
如何将快速卷轴添加到RecyclerView
背景 在ListView上,您可以使用快速滚动器,该滚动器允许您拖动滚动条以轻松滚动至所需位置(使用fastScrollEnabled属性) 连同“ SectionIndexer ”类以及可选的一些属性一起,您可能会在使用此滚动条时看到一个漂亮的弹出窗口(此处链接)。 这样的事情会显示在通讯录应用程序中,以便您可以轻松滚动至特定字母。 问题 RecyclerView似乎没有任何这些。甚至没有快速滚动。 问题 如何为RecyclerView添加快速滚动器功能?

15
在RecyclerView中进行单选
我知道recyclerview类中没有默认的选择方法,但是我尝试了以下方法, public void onBindViewHolder(ViewHolder holder, final int position) { holder.mTextView.setText(fonts.get(position).getName()); holder.checkBox.setChecked(fonts.get(position).isSelected()); holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked) { for (int i = 0; i < fonts.size(); i++) { fonts.get(i).setSelected(false); } fonts.get(position).setSelected(isChecked); } } }); } 在尝试这段代码时,我得到了预期的输出,但是完全没有。 我将用图像对此进行解释。 默认情况下,从我的适配器中选择第一项 然后,我尝试选择第2个,然后选择第3个,然后选择第4个,最后选择第5个, 在这里,应该只选择第5个,但是全部五个都被选中。 如果我将列表滚动到底部然后再回到顶部, 我达到了我的期望, 我该如何克服这个问题?还有一段时间,如果我快速滚动列表,则会选择其他项目。如何克服这个问题呢? 更新资料 …

4
什么与RecyclerView.Adapter一起使用的SortedList <T>是什么?
Android支持库22.1已于昨天发布。v4支持库和v7中添加了许多新功能,其中android.support.v7.util.SortedList&lt;T&gt;引起了我的注意。 据说,这SortedList是一种新的数据结构,可与一起使用RecyclerView.Adapter,维护所提供的项目的添加/删除/移动/更改的动画RecyclerView。听起来很像a List&lt;T&gt;,ListView但看起来更先进,更强大。 那么,SortedList&lt;T&gt;和之间有什么区别List&lt;T&gt;?如何有效使用它?如果是这样,SortedList&lt;T&gt;over的执行List&lt;T&gt;是什么?有人可以张贴一些样品吗? 任何提示或代码将不胜感激。提前致谢。


8
使用com.android.support:recyclerview-v7:26.0.0-beta2时出现attr / colorError找不到错误
我正在使用Android Studio 3.0 Canary4。我导入了回收者视图库。然后,它显示出attr / colorError not found消息。这是应用程序build.gradle: apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion "25.0.3" defaultConfig { applicationId "com.robyn.myapplication" minSdkVersion 19 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(include: ['*.jar'], dir: …

10
使用RecyclerView和CardView进行触摸反馈
我很想为我的开源库启用触摸反馈。 我创建了RecyclerView和CardView。该CardView包含不同的区域不同的onClick动作。现在,如果用户单击卡中的任意位置,我希望触发波纹效果,但是我无法实现此行为。 这是我的列表项,您也可以在GitHub上找到它:https : //github.com/mikepenz/AboutLibraries/blob/master/library/src/main/res/layout/listitem_opensource.xml &lt;RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true" android:background="@drawable/button_rect_normal"/&gt; &lt;LinearLayout android:padding="6dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"&gt; &lt;LinearLayout android:gravity="center_vertical" android:paddingLeft="8dp" android:paddingRight="8dp" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"&gt; &lt;TextView android:id="@+id/libraryName" android:textColor="@color/title_openSource" android:textSize="@dimen/textSizeLarge_openSource" android:textStyle="normal" android:layout_width="0dp" android:layout_weight="5" android:layout_height="wrap_content" android:ellipsize="end" android:maxLines="1"/&gt; &lt;TextView android:id="@+id/libraryCreator" android:textColor="@color/text_openSource" android:textStyle="normal" android:layout_width="0dp" android:layout_weight="2" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:gravity="right" android:maxLines="2" android:textSize="@dimen/textSizeSmall_openSource"/&gt; &lt;/LinearLayout&gt; &lt;View android:layout_width="match_parent" android:layout_height="1px" android:layout_marginTop="4dp" android:background="@color/dividerLight_openSource"/&gt; &lt;TextView …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.