首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于回收适配器位置的ImgeView上设置Alfa

基于回收适配器位置的ImgeView上设置Alfa
EN

Stack Overflow用户
提问于 2016-11-26 06:43:06
回答 1查看 451关注 0票数 0

我有一个RecyclerView,我正在填充4 imageView。我的需要是,当第一个项目是在顶部可见位置,它必须阿尔法1和其他项目必须在0.2f阿尔法。

当我滚动我的回收者的观点,谁来的最高位置,它应该被设置为阿尔法1。我所做的。

我的适配器

代码语言:javascript
复制
  @Override
public void onBindViewHolder(PageCircleIndiAdapter.ViewHolder holder, int position) {
    final PageModels pageModels = pageList.get(position);
    if (pageList.get(position) != null) {
        holder.imageView.setImageResource(pageModels.resourceId);

    }
    if (position == 0) {
        holder.rlyt.setAlpha(1f);
        pageCircleIndicator.changeIndicator(position);
    }

     else if (position >firstVisible && position<lastVisible) {
        holder.rlyt.setAlpha(1f);
        pageCircleIndicator.changeIndicator(position);
    } else if(position==pageList.size()-1){
        holder.rlyt.setAlpha(1f);
        pageCircleIndicator.changeIndicator(position);
    }
    else {
        holder.rlyt.setAlpha(0.2f);
        pageCircleIndicator.changeIndicator(position);
    }
}

**我的MainActivity滚动侦听器**

代码语言:javascript
复制
 mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager();

            int firstVisible = manager.findFirstVisibleItemPosition();
            int lastVisible = manager.findLastVisibleItemPosition();
            Log.i("TAG", "onScrolled: " + firstVisible);
            Log.i("TAG", "Last Index: " + lastVisible);
            pageAdapter.changeItem(firstVisible, lastVisible);

        }

    });

    createIndicator();
    pageAdapter.notifyDataSetChanged();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-26 06:54:51

默认情况下,将项布局( alfa 0.2f )保留在xml布局中。

现在,当您使用addOnScrollListener方法将第一个可见项位置传递给changeItem中的适配器时。在适配器中进行如下更改:

代码语言:javascript
复制
@Override
public void onBindViewHolder(PageCircleIndiAdapter.ViewHolder holder, int position) {
    final PageModels pageModels = pageList.get(position);
    if (pageList.get(position) != null) {
        holder.imageView.setImageResource(pageModels.resourceId);

    }
    if (position == 0 || position == firstVisible) {
        holder.rlyt.setAlpha(1f);
        pageCircleIndicator.changeIndicator(position);
    }else {
        holder.rlyt.setAlpha(0.2f);
        pageCircleIndicator.changeIndicator(position);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40815739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档