Articles of android recyclerview

如何在Android RecyclerView上对string进行sorting?

我有一个recyclerView充满CardViews有2个参数(他们都是string),其中之一是一个标题,我想有一个button,按字母顺序sorting他们的基础上。 因为它没有太多的元素,我决定使用插入sorting是o(n ^ 2),这是我的实现: public void ISortDes(String[]strings){ int j; String key; int i; for (j = 1; j < strings.length; j++) { key = strings[ j ]; for(i = j – 1; (i >= 0) ; i–) { if (key.compareTo(strings[i]) > 0){ break; } strings[ i+1 ] = strings[ i ]; } strings[ i+1 ] […]

GridLayoutManager中的不同(dynamic)项目高度

我有一个2列的RecyclerView和GridLayoutManager。 我怎样才能强制LayoutManager根据模板在第一个截图? 现在我已经得到了截图2的结果。 需要的结果: 当前结果:

如何获得“onBindViewHolder”中recyclerview项目的高度

RecyclerView项目的高度不固定 ,我需要为每个项目设置背景图像,所以我想获得recyclerview的项目的高度来调整图像的大小,但onBindViewHolder itemView.getHeight()总是在onBindViewHolder返回0。 我试图search许多问题或文章,但我仍然不能得到一个好的解决scheme。

RecyclerView适配器的位置如何与其数据集的索引相关联?

我以为他们是一样的,但他们不是。 当我尝试访问我的数据集的“位置”索引时,下面的代码给出了一个indexOutOfBoundsexception,在这种情况下,我创build了一个名为Task的模型列表: public class TaskAdapter extends RecyclerView.Adapter<TaskAdapter.TaskViewHolder> { private List<Task> taskList; private TaskAdapter thisAdapter = this; // cache of views to reduce number of findViewById calls public static class TaskViewHolder extends RecyclerView.ViewHolder { protected TextView taskTV; protected ImageView closeBtn; public TaskViewHolder(View v) { super(v); taskTV = (TextView)v.findViewById(R.id.taskDesc); closeBtn = (ImageView)v.findViewById(R.id.xImg); } } public TaskAdapter(List<Task> tasks) […]

Android RecyclerView查找ItemDecoration的第一个和最后一个视图

这是我的情况 我必须在Recycler View的第一个和最后一个项目上添加空间 我正在使用ItemDecoration recyclerView.addItemDecoration(new RecyclerView.ItemDecoration() { @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { int totalHeight = parent.getHeight(); int viewHeight = getResources().getDimensionPixelOffset(R.dimen.breadcrumb_btn_height); int padding = (totalHeight – viewHeight) / 2; //to position view on middle if (view.getTag() instanceof Integer) { int position = (int) view.getTag(); if (position == 0) { […]

RecyclerView中的项目没有填充它的宽度match_parent

我的RecyclerView及其子项目有问题。 它们没有扩展到整个android:layout_width="match_parent"和fill_parent 。 我已经尝试了两个。 事情是,这个工作完美而没有变化,它被破坏了不知何故。 我在一个FragmentDialog显示了这一点,子项目只是展开像wrap_content当我上下滚动视图,他们完全展开,但只要我点击它们(我叫notifyDataSetChanged() )他们再次缩小。 这里是一个正确填充的项目的图片,下面是它们是如何加载时,或当我通知数据。 另外,我使用的StickHeaderAdapter ,不显示标题,直到我点击其中一个项目(这个工作以前,我没有改变任何东西)。 这是子行的代码: <?xml version="1.0" encoding="utf-8"?> <carbon.widget.LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" app:carbon_rippleColor="@color/green" app:carbon_rippleStyle="background"> <carbon.widget.TextView android:layout_width="0dp" android:layout_height="wrap_content" android:id="@+id/block_name" android:padding="@dimen/block_row_padding" android:layout_weight="1" android:textSize="@dimen/block_row_text_size" android:textColor="@color/black" app:carbon_rippleColor="@color/green" app:carbon_rippleStyle="background"/> <RelativeLayout android:id="@+id/download_layout" android:layout_width="64dp" android:layout_height="match_parent" android:layout_marginRight="24dp" android:layout_marginEnd="24dp" android:visibility="gone"> <carbon.widget.ProgressBar android:id="@+id/downloading_bar" app:carbon_progressStyle="circular_indeterminate" app:carbon_barWidth="5dp" app:carbon_tint="@color/green" android:layout_width="50dp" android:layout_height="50dp" android:layout_gravity="center" android:layout_margin="8dp" android:visibility="invisible"/> <carbon.widget.TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/block_progress_download" android:textSize="12sp" android:layout_centerVertical="true" […]

简单的Android RecyclerView示例

我已经使用Android的RecyclerView多次列出了一些项目,但这是一个相当复杂的过程。 通过网上作品( 这个 , 这个 , 这是很好的)众多的教程之一,但我正在寻找一个裸骨头的例子,我可以复制和粘贴起来,并迅速运行。 只有以下function是必要的: 垂直布局 每行一个TextView 响应点击事件 因为我已经多次希望了,所以最后我决定回答下面的问题,以供我将来参考。

“RecyclerView:没有适配器连接; 跳过布局“为recyclerview在片段

我得到这个错误,但我不知道是什么原因导致它…也许是这样的事实,这是在一个片段,而不是在活动本身初始化。 编辑:包括StatsAdapter代码 public class StatsFragment extends Fragment { private RecyclerView mRecyclerView; private LinearLayoutManager mLinearLayoutManager; private RecyclerView.Adapter mAdapter; private String[] myDataset = new String[]{"hello", "world", "yolo"}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_stats, parent, false); mRecyclerView = (RecyclerView) v.findViewById(R.id.cardList); mRecyclerView.setHasFixedSize(true); mAdapter […]

ScrollView里面的RecyclerView,有些项目没有显示

我在ScrollView中有一个RecyclerView,像这样: <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <!–other stuff–> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="wrap_content" android:visibility="gone"/> </LinearLayout> <!–other stuff–> </ScrollView> 而RecyclerView的项目是一个RelativeLayout ,里面有一个EditText和其他视图。 RelativeLayout和EditText的layout_height都是wrap_content 。 用户可以input到该EditText没有任何长度/线的限制,使每个项目的高度是不同的。 然后我发现Adapter中的getItemCount()返回true值,但是onBindViewHolder()被调用错误次数(小于它应该是),因此不足以显示所有项目。 我发现这只会发生,如果我写recyclerView.setNestedScrollingEnabled(false) 。 但是我不能删除这一行。 因为如果我这样做, RecyclerView将不会顺利滚动,并与ScrollView和ScrollView本身内的其他视图不协调。 这发生在6.0,而不是4.1。 我在这个页面上与Google进行了沟通: https : //code.google.com/p/android/issues/detail? RecyclerView他告诉我这是RecyclerView的错误修复。 您可以访问该页面,以便更好地理解问题和我的目标(有一个小示例项目来显示问题)。 我甚至不同意他的看法,我想解决这个问题。 请帮忙,提前谢谢。

嵌套RecyclerView自己滚动

我有一个家长recyclerview有3个子视图。 孩子的最后两个是recyclerview。 Parent recyclerview – child view 1 – child view 2 (horizontal rv) – child view 3 (horizontal rv) 问题是每当这个片段可见时,它会自动滚动以便与child view 2的底部alignment。 我已经设置父RV听滚动。 这是我最终的结果: dy: 108 dy: 72 dy: 75 dy: 62 dy: 48 dy: 42 dy: 34 dy: 27 dy: 22 dy: 16 dy: 12 dy: 10 dy: 7 dy: 5 dy: 3 […]