Android:列表中的ListItem跳过第0位的第一个项目

时间:2016-03-07 17:57:20

标签: android

我有一个带适配器的RecyclerView。在适配器中,我用列表填充我的视图。但在我的适配器中,我膨胀了两个不同的视图。这是一些代码:

@Override
    public int getItemViewType(int position) {
        switch (position) {
            case 0:
                return TYPE_HEADER;
            default:
                return TYPE_LIST_ITEM;
        }
    }

 @Override
    public DataObjectHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = null;
        switch (viewType) {

            //region User-Data like ProfilePic & Abonnenten
            case TYPE_HEADER: {
                view = LayoutInflater.from(parent.getContext())
                        .inflate(R.layout.profile_besties_placeholder, parent, false);
                return new DataObjectHolder(view) {
                };
            }
            case TYPE_LIST_ITEM: {
                view = LayoutInflater.from(parent.getContext())
                        .inflate(R.layout.profile_besties_list_item, parent, false);

                return new DataObjectHolder(view) {
                };
            }


        }
        return null;
    }

现在,我尝试将数据设置为视图。我的列表中有20个项目,我将该位置设置为我的观看文本。我可以在RecyclerView中看到它以1开头,但必须从0开始。这是我的onBind

@Override
    public void onBindViewHolder(final DataObjectHolder holder, int position) {
        switch (position) {
            case TYPE_HEADER:
                break;
            default:

                int newPostion = position -1;

                bestiesItem = contents.get(position);
                holder.progressBarBesties.setVisibility(View.VISIBLE);
                //region set data to views
                holder.textViewUsername.setText(bestiesItem.getStrUsername());
                holder.textViewSubscribers.setText(bestiesItem.getStrAbos() + " Abos" + position);
                Glide.with(context)
                        .load(bestiesItem.getStrImageName())
                        .thumbnail(0.1f)
                        .error(R.drawable.error_image)
                        .diskCacheStrategy(DiskCacheStrategy.SOURCE)
                        .fitCenter()
                        .into(new GlideDrawableImageViewTarget(holder.imageViewProfilePic) {
                            @Override
                            public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> animation) {
                                super.onResourceReady(resource, animation);
                                //check isRefreshing
                                holder.progressBarBesties.setVisibility(View.GONE);
                                holder.imageViewProfilePic.setImageDrawable(resource);
                            }
                        });
                //endregion

                break;
        }
    }

我试过类似newPosition的东西用1减去位置,但它不起作用。只有19项,但我在列表中添加了20项。问题是第一种观点..哦,我忘了这个:

static final int TYPE_HEADER = 0;
static final int TYPE_LIST_ITEM = 1;

一个视图只会被位置0夸大。因此,列表开始计入第一个位置,因此缺少第一个项目。

我如何获得所有物品?

0 个答案:

没有答案