[RESOLVIDO]Problema com RecyclerView

Estou com o seguinte problema, tenho uma tela onde exibo uma lista utilizando um RecyclerView, ate então funciona de boas, ai quando eu utilizo o Scroll da view ele cria “espaços” em branco na lista …

private RecyclerView recyclerView;
private TreinoAdapter mAdapter;
private List<Treino> treinos;
private Long idCliente;
private String escolhaSelect;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_principal);

    recyclerView = (RecyclerView) findViewById(R.id.recycle);

}

/***
 * Adiciona o menu setting
 * @param menu
 * @return
 */
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item){

    String tipoEscolhido = (String) item.getTitle();

    if( tipoEscolhido.equalsIgnoreCase("Realizar") )
        this.escolhaSelect = "AR";
    else if( tipoEscolhido.equalsIgnoreCase("Realizado") )
        this.escolhaSelect = "S";
    else
        this.escolhaSelect = "N";

    this.idCliente = ((long) 1);

    retornaTreinos();
    
    return true;
}

/**
 * Método que abastece o RecycleView após a escolha do Item
 * */
public void abasteceRecyclerView(){

    mAdapter = new TreinoAdapter(treinos, this);
    
    RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
    recyclerView.setLayoutManager(mLayoutManager);
    recyclerView.setItemAnimator(new DefaultItemAnimator());
    recyclerView.setAdapter(mAdapter);

    recyclerView.addOnItemTouchListener(new RecycleTouchListener(
            getApplicationContext(),
            recyclerView,
            new RecycleTouchListener.ClickListener() {

                @Override
                public void onClick(View view, int position) {

                    Treino treino = treinos.get(position);

                    Intent intent = new Intent(PrincipalActivity.this, DetalheActivity.class);

                    Bundle bundle = new Bundle();

                    String tipoTreino = "";
                    String terreno = "";

                    if(treino.getTipo().equalsIgnoreCase("T")){

                        tipoTreino = "Bike";

                        if(treino.getTerreno().equalsIgnoreCase("T"))
                            bundle.putString("terreno", "Terra");
                        else
                            bundle.putString("terreno", "Alsfalto");

                    }
                    else if(treino.getTipo().equalsIgnoreCase("M"))
                        tipoTreino = "Musculação";
                    else
                        tipoTreino = "Descanso";


                    bundle.putString("data", treino.getDataTreino());
                    bundle.putString("tipoTreino", tipoTreino);
                    bundle.putString("descricao", treino.getDescricao());

                    intent.putExtras(bundle);
                    startActivity(intent);

                    /*Toast.makeText(getApplicationContext(), "Exibindo Detalhe",//treino.getDescricao()
                            Toast.LENGTH_LONG).show();*/

                }

                @Override
                public void onLongClick(View view, int position) {

                    Treino treino = treinos.get(position);
                    Toast.makeText(getApplicationContext(), treino.getDataTreino(),
                            Toast.LENGTH_LONG).show();

                }
            }));
}

/**
 * Método que abastece com os dados do BD
 * */
public void retornaTreinos(){
    
    for(int i = 1; i <= 20; i++)
        treinos.add(new Treino(i + "/02/2017 - Segunda", "Bike", "Terra", "Relizar 12x"));

    abasteceRecyclerView();


}

Segue o Print

Seria interessante você postar o código da TreinoAdapter também

Deve ter algum IF lá que ta fazendo isso

public class TreinoAdapter extends RecyclerView.Adapter {

private List<Treino> treinos;
private Context context;

public TreinoAdapter(List<Treino> treinos, Context context){
    
    this.treinos = treinos;
    this.context = context;
}

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    View view = LayoutInflater.from(context).inflate(R.layout.list_item, parent, false);

    TreinoViewHolder treinoViewHolder = new TreinoViewHolder(view);
    return treinoViewHolder;
}

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {

    TreinoViewHolder treinoViewHolder = (TreinoViewHolder) holder;

    treinoViewHolder.dataTreino.setText(treinos.get(position).getDataTreino());
    treinoViewHolder.descricao.setText(treinos.get(position).getDescricao());

}

@Override
public int getItemCount() {
    return this.treinos.size();
}

public class MyViewHolder extends RecyclerView.ViewHolder{

    TextView dataTreino;
    TextView descricao;

    public MyViewHolder(View itemView) {
        super(itemView);
        dataTreino = (TextView) itemView.findViewById(R.id.diaTreino);
        descricao = (TextView) itemView.findViewById(R.id.descricao);
    }
}

}

Cara, debug o resultado da lista que tu usa para preenchar, ela pode estar vindo com algum item nulo e o recicleview entende que é um item e tenta preencher. Tente colocar um item para apagar qualquer item nulo da lista.