首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带节的回收站,但每节只有页脚

带节的回收站,但每节只有页脚
EN

Stack Overflow用户
提问于 2016-07-13 12:39:56
回答 1查看 279关注 0票数 0

大家好,

我有一个回收视图,在第一个负载达到我想要的结果,这是分组所有的交易一个特定的卖方正在销售,由该卖家。

示例:

  • 鲍勃在卖表。
  • 鲍勃卖了辆车。
  • 鲍勃卖了匹马。
  • 按钮移除所有Bobs交易。

  • 吉姆卖房子。
  • 吉姆卖猴子。
  • 按钮以删除Jims的所有交易。

ect

示例:

问题是当我开始滚动回收视图的时候,一排排的物品就会混在一起。

我这样做的方式是,我有一个单一的布局,其中包含一个垂直线性布局,在LinearLayout下面有一个绿色按钮。

现在,我正在编程地膨胀每个行的视图,然后设置该行的数据。

这是我的onBindViewHolder:

代码语言:javascript
运行
复制
      @Override
  public void onBindViewHolder(final ParentCartResultsViewHolder holder, int position) {

    final LinkedHashMap<Long, List<Trade>> mapTradesBySeller = CartUtils.getUserToFixedPriceTradeMap();
    mTradesBySeller = (new ArrayList<>(mapTradesBySeller.values())).get(holder.getAdapterPosition());

    if (mTradesBySeller != null) {
      for (Trade trade : mTradesBySeller) {
        View singleTrade = LayoutInflater.from(MyApplication.getAppContext()).inflate(R.layout.item_trade_details_include_row, holder.mLinearLayout, false);
        TextView tradeTitle = (TextView) singleTrade.findViewById(R.id.trade_details_include_trade_title);
        tradeTitle.setText(trade.getTitle());
        TextView endDate = (TextView) singleTrade.findViewById(R.id.trade_details_include_trade_ending_time);
        endDate.setText(trade.getUserAlias() + " : " + trade.getUserId());
        holder.mLinearLayout.addView(singleTrade);
      }
    }
  }

我的onCreateViewHolder:

代码语言:javascript
运行
复制
      @Override
  public ParentCartResultsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.cart_grouped_by_seller, parent, false);
    return new ParentCartResultsViewHolder(v);
  }

现在我想我知道问题是什么了,只是我想不出怎样才能解决这个问题。

问题在于创建视图并将它们添加到LinearLayout中的onBindViewHolder中,因为这会多次运行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-18 22:16:38

您可以使用库SectionedRecyclerViewAdapter轻松地将数据分组为各节,并向每个节添加一个页脚。

首先创建一个节类:

代码语言:javascript
运行
复制
class TradeSection extends StatelessSection {

    List<String> list;

    public TradeSection(List<String> list) {
        // call constructor with layout resources for this Section header, footer and items 
        super(-1, R.layout.section_item, R.layout.section_footer);

        // remove header
        this.setHasHeader(false);

        this.list = list;
    }

    @Override
    public int getContentItemsTotal() {
        return list.size(); // number of items of this section
    }

    @Override
    public RecyclerView.ViewHolder getItemViewHolder(View view) {
        // return a custom instance of ViewHolder for the items of this section
        return new MyItemViewHolder(view);
    }

    @Override
    public void onBindItemViewHolder(RecyclerView.ViewHolder holder, int position) {
        MyItemViewHolder itemHolder = (MyItemViewHolder) holder;

        // bind your view here
        itemHolder.tvItem.setText(list.get(position));
    }

    @Override
    public RecyclerView.ViewHolder getFooterViewHolder(View view) {
        return new MyFooterViewHolder(view);
    }

    @Override
    public void onBindFooterViewHolder(RecyclerView.ViewHolder holder) {
        MyFooterViewHolder footerHolder = (MyFooterViewHolder) holder;

        // bind your footer view here
        footerHolder.tvItem.setText(title);
    }
}

然后用您的部分设置RecyclerView:

代码语言:javascript
运行
复制
// Create an instance of SectionedRecyclerViewAdapter 
SectionedRecyclerViewAdapter sectionAdapter = new SectionedRecyclerViewAdapter();

// Create your sections with the list of data for each year
TradeSection section1 = new TradeSection(bobDataList);
TradeSection section2 = new TradeSection(jimDataList);

// Add your Sections to the adapter
sectionAdapter.addSection(section1);
sectionAdapter.addSection(section2);

// Set up your RecyclerView with the SectionedRecyclerViewAdapter
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
recyclerView.setAdapter(sectionAdapter);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38352021

复制
相关文章

相似问题

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