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();
}