标签: android-recyclerview

CardView背景颜色总是白色

我正在使用RecyclerView和GridLayoutManager,我将每个项目都作为CardView.

不幸的是,这里的CardView似乎没有改变它的背景颜色.我尝试了布局和编程方式,但我似乎没有尝试过什么似乎工作.

我一直在苦苦挣扎.如果有人可以帮我解决这个问题,我感激不尽.

android android-cardview android-recyclerview

109
推荐指数
4
解决办法
7万
查看次数

以编程方式将新项目添加到recyclerview?

我仍然试图了解Recyclerview.我有一个arraylist,我用它来初始化一个回收站视图.

如何在设置适配器和布局管理器的回收器视图中添加新项?

private void initData() {
        mItems = new ArrayList<String>();
        for (int i = 0; i < ITEMS_COUNT; i++) {
            mItems.add("Item " + (i + 1));
        }
    }

    private void initRecyclerView() {
        mRecentRecyclerView = (RecyclerView) findViewById(R.id.recentrecyclerView);
        mRecentRecyclerView.setHasFixedSize(true);
        mRecentLayoutManager = new LinearLayoutManager(this);
        mRecentRecyclerView.setLayoutManager(mRecentLayoutManager);



        mAdapter = new RecyclerView.Adapter<CustomViewHolder>() {
            @Override
            public CustomViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
                View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.notice_snippet
                        , viewGroup, false);
                return new CustomViewHolder(view);
            }

            @Override
            public void onBindViewHolder(CustomViewHolder viewHolder, int i) {
                viewHolder.noticeSubject.setText(mItems.get(i));
            }

            @Override
            public int getItemCount() …
Run Code Online (Sandbox Code Playgroud)

android items add android-recyclerview

107
推荐指数
3
解决办法
12万
查看次数

如何在RecyclerView中制作粘性标题?(没有外部库)

我想在屏幕顶部修复我的标题视图,如下图所示,而不使用外部库.

在此输入图像描述

就我而言,我不想按字母顺序进行.我有两种不同类型的视图(标题和正常).我只想修复顶部,最后一个标题.

android header sticky android-recyclerview

106
推荐指数
6
解决办法
8万
查看次数

在notifyDatasetChanged()之后RecyclerView闪烁

我有一个RecyclerView,它从API加载一些数据,包括一个图像URL和一些数据,我使用networkImageView来延迟加载图像.

@Override
public void onResponse(List<Item> response) {
   mItems.clear();
   for (Item item : response) {
      mItems.add(item);
   }
   mAdapter.notifyDataSetChanged();
   mSwipeRefreshLayout.setRefreshing(false);
}
Run Code Online (Sandbox Code Playgroud)

这是适配器的实现:

public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) {
        if (isHeader(position)) {
            return;
        }
        // - get element from your dataset at this position
        // - replace the contents of the view with that element
        MyViewHolder holder = (MyViewHolder) viewHolder;
        final Item item = mItems.get(position - 1); // Subtract 1 for header
        holder.title.setText(item.getTitle());
        holder.image.setImageUrl(item.getImg_url(), VolleyClient.getInstance(mCtx).getImageLoader());
        holder.image.setErrorImageResId(android.R.drawable.ic_dialog_alert);
        holder.origin.setText(item.getOrigin());
    }
Run Code Online (Sandbox Code Playgroud)

问题是当我们在recyclerView中刷新时,它在开始时很短暂地看起来很奇怪.

我只使用了GridView/ListView,它按预期工作.没有瞎眼.

RecycleView的配置 …

android android-fragments android-recyclerview

102
推荐指数
9
解决办法
5万
查看次数

RecyclerView GridLayoutManager:如何自动检测跨度计数?

使用新的GridLayoutManager:https://developer.android.com/reference/android/support/v7/widget/GridLayoutManager.html

它需要一个明确的跨度计数,所以问题现在变成:你怎么知道每行有多少"跨度"?毕竟这是一个网格.根据测量的宽度,RecyclerView可以容纳多个跨距.

使用旧的GridView,您只需设置"columnWidth"属性,它将自动检测适合的列数.这基本上是我想要为RecyclerView复制的:

  • 在上添加OnLayoutChangeListener RecyclerView
  • 在此回调中,膨胀单个"网格项"并进行测量
  • spanCount = recyclerViewWidth/singleItemWidth;

这似乎是很常见的行为,所以有一种我没有看到的更简单的方法吗?

android android-gridlayout gridlayoutmanager android-recyclerview

101
推荐指数
6
解决办法
8万
查看次数

RecyclerView - 如何在某个位置平滑滚动到项目顶部?

在RecyclerView上,我可以使用以下命令突然滚动到所选项目的顶部:

((LinearLayoutManager) recyclerView.getLayoutManager()).scrollToPositionWithOffset(position, 0);
Run Code Online (Sandbox Code Playgroud)

但是,这突然将项目移动到顶部位置.我想顺利地移动到项目的顶部.

我也尝试过:

recyclerView.smoothScrollToPosition(position);
Run Code Online (Sandbox Code Playgroud)

但它不能很好地工作,因为它不会将项目移动到选定的顶部位置.它只是滚动列表,直到位置上的项目可见.

android scroll position smooth android-recyclerview

100
推荐指数
7
解决办法
8万
查看次数

如何使用RecyclerView.State保存RecyclerView的滚动位置?

我对Android的RecyclerView.State有疑问.

我正在使用RecyclerView,我如何使用它并将其与RecyclerView.State绑定?

我的目的是保存RecyclerView的滚动位置.

android state android-recyclerview

97
推荐指数
11
解决办法
9万
查看次数

RecyclerView中最后一个Child的边距/填充

我正在尝试在最后一行添加Padding/Margin Bottom,在第一行添加Padding/Margin Top.我不能在项目xml中这样做,因为它会影响我的所有Childs.

我的RecyclerView适配器中有标题和子项,所以我无法使用

   android:padding="4dp"
   android:clipToPadding="false"
Run Code Online (Sandbox Code Playgroud)

我需要在每个标题的最后一行单独使用它

android padding android-recyclerview

97
推荐指数
7
解决办法
4万
查看次数

删除RecyclerView滚动效果

RecyclerView内心有两个NavigationDrawer.两者都有蓝色滚动效果.

如何在两者中删除此效果RecyclerViews

我尝试更改:mRecyclerView.setHasFixedSize(true);to false,但它删除了滚动效果.(这种方法的作用是什么?)

链接到问题的图像

android scroll effect android-recyclerview

96
推荐指数
2
解决办法
4万
查看次数

如何在RecyclerView中更新/刷新特定项目

我正在尝试刷新特定项目RecyclerView.

故事:每当用户点击项目时,它都会显示AlertDialog.用户可以通过单击确定按钮键入一些文本.我想在这个项目中显示这个文本并显示不可见ImageView- 在XML和适配器中声明ViewHolder-

我在AlertDialogPositive Button中使用此函数来更新项目:

private void updateListItem(int position) {
  View view = layoutManager.findViewByPosition(position);
  ImageView medicineSelected = (ImageView) view.findViewById(R.id.medicine_selected);
  medicineSelected.setVisibility(View.VISIBLE);
  TextView orderQuantity = (TextView) view.findViewById(R.id.order_quantity);
  orderQuantity.setVisibility(View.VISIBLE);
  orderQuantity.setText(quantity + " packet added!");

  medicinesArrayAdapter.notifyItemChanged(position);
}
Run Code Online (Sandbox Code Playgroud)

但是这段代码不仅改变了传递位置的itemView,还改变了其他一些itemView(s)!

如何通过单击更改特定的itemView?

android android-adapter recycler-adapter android-recyclerview

96
推荐指数
5
解决办法
15万
查看次数