如何在回收站视图中的每个项目下方创建寻呼机指示器

Posted

技术标签:

【中文标题】如何在回收站视图中的每个项目下方创建寻呼机指示器【英文标题】:How to Create a Pager Indicator below each items in recycler view 【发布时间】:2021-11-21 08:45:23 【问题描述】:

我在适配器的帮助下创建了一个包含项目列表的recycler view,例如Home, contacts profile 之类的选项。所以目前在点击回收器视图中的每个项目时,我正在使用接口将回调传递回片段以进行相应的操作。单击 recycler view 中的每个图标时,我正在打开一个片段类。这就是我为我的应用程序实现的。所以现在我必须在每个选定的图标下方以线条的形式显示page indicator。我们如何在选择每个图标时实现指标??

示例代码:

 List<FilterCategories>  filterCategories = new ArrayList<>();
    filterCategories.add(new FilterCategories("Home", R.drawable.filter_price_gray, 0));
    filterCategories.add(new FilterCategories("Contacts", R.drawable.filter_store_gray, 0));
    filterCategories.add(new FilterCategories("Profile", R.drawable.filter_style_gray, 0));


filterByAdapter = new FilterByAdapter(getContext(), filterCategories);
filterRecycler.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false));
filterRecycler.setAdapter(filterByAdapter); 

【问题讨论】:

你能提供一张图片或其他东西来准确地展示你想要的吗? @amirho3einRostami - 我能够使用以下示例代码解决问题。 您应该对解决问题的问题进行投票,以便未来的访问者知道答案解决了您的问题 【参考方案1】:

我能够通过在适配器的 XML 布局中创建自定义 View 来显示寻呼机指示器。我使用view 来隐藏和显示,方法是单击bindViewHolder 上回收器中的每个项目视图。

示例代码:

private void handleClick(ViewHolder holder, final String title, int position) 
    holder.itemLayout.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View view) 
            view.startAnimation(viewClick);
            for (int i = 0; i < filterCategories.size(); i++) 
                if (i == position )
                    filterCategories.get(i).setSelectedSlider(true);
            
                else
                    filterCategories.get(i).setSelectedSlider(false);
                    
                
                notifyDataSetChanged();
            
           // viewTap(title);
        
 if (filterCategories.get(position).isSelectedSlider()) 
            holder.sliderView.setVisibility(View.VISIBLE);
         else 
            holder.sliderView.setVisibility(View.GONE);
        

模型类代码:

public class FilterCategories 

    private String   Title;
    private int      Images;
    private boolean  isExpanded       = false;
    private boolean  isSelectedSlider = false;
    private Integer  BadgeCount;

    public FilterCategories() 

    

    public FilterCategories(String title, int images ,int badgeCount) 

        Title = title;
        Images = images;
        BadgeCount = badgeCount;
    

    public String getTitle() 
        return Title;
    

    public void setTitle(String title) 
        Title = title;
    

    public int getImages() 
        return Images;
    

    public void setImages(int images) 
        Images = images;
    

    public boolean getExpanded() 
        return isExpanded;
    

    public void setExpanded(boolean expanded) 
        isExpanded = expanded;
    
    public Integer getBadgeCount() 
        return BadgeCount;
    

    public void setBadgeCount(Integer badgeCount) 
        BadgeCount = badgeCount;
    

    public boolean isSelectedSlider() 
        return isSelectedSlider;
    

    public void setSelectedSlider(boolean selectedSlider) 
        isSelectedSlider = selectedSlider;
    



【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于如何在回收站视图中的每个项目下方创建寻呼机指示器的主要内容,如果未能解决你的问题,请参考以下文章

视图重新添加到视图寻呼机中的片段

如何在每个视图分页器中显示json一个[关闭]

如何为我在回收站视图中的卡片视图中的每个项目创建一个点击监听器

NestedScrollView 问题中的可滚动寻呼机内容

Horizo​​ntalPager 中的额外填充

如何使用光标和循环显示来自 sqlite 的片段的 recyclerview