在RecyclerView滚动上只创建一个按钮

时间:2016-05-09 17:17:21

标签: android android-recyclerview

以下是RecyclerView onBindViewHolder方法的代码。

在回收站视图中,我正在动态创建一个按钮,如下所示。

@Override
  public void onBindViewHolder(final ViewHolder holder, final int position) {
          .
          .
          .
        Button button1 = new Button(context);
        holder.phoneContainer.addView(button1);
}

当我在设备中滚动应用程序时(在真实设备中运行时),再次创建按钮。

应该在每个cardview中附加1个按钮,但是当我滚动按钮时会创建。

以任何方式删除views

中的现有holder.phoneContainer

只创建一次?

2 个答案:

答案 0 :(得分:2)

您应该删除容器内的视图并添加按钮。

        holder.phoneContainer.removeAllViews();
        Button button1 = new Button(context);
        LinearLayout.LayoutParams params = new LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
        holder.phoneContainer..addView(button1, params);

答案 1 :(得分:1)

如果View内只有一个phoneContainer,你可以这样做:

holder.phoneContainer.removeAllViews();
holder.phoneContainer.addView(button1);