Boa dia a todos, estou testando o uso da ViewPagerIndicator e nos exemplos ensina a adicionar ou remover página. Através dos exemplos deixo um evento escutando na PageIndicator para quando o usuário selecionar uma página eu capturar a posição ai faço uma verificação simples, se a posição for igual a '0' então adiciona um item na posição '0' ou se for a posição '<TAMANHO DA LISTA - 1>' adiciono um item na última posição. Quando adiciono o item na última posição tudo funciona normalmente, e quando adiciono um item na posição '0' as abas mostram corretamente porém a minha view não atualiza ficando com os dados da última view acessada, já que volto a seleção do item na posição '1'.
-- O que eu fiz nesse método foi:
@Override
public void onPageSelected(int position) {
//caso o item seja o 1º ou último selecionado
if(position == 0 ){
//adiciona um item a lista no inicio
Date dataBase = Funcoes.addOrRemoveMonth(LISTA_MESES_CONTENT.get(position), -1); //remove 1 mês
LISTA_MESES_CONTENT.add(0, dataBase); //adiciona um novo mês na lista de meses que é estática
Log.i("TESTE", "Add novo mês INICIO 1 '"+Funcoes.dateToStrMesAno(dataBase)+"' "+new Date());
mPager.setCurrentItem(position+1, false); //selecionar item na posição 1 já que sempre adiciona um item na posição 0
//
/////mAdapter.notifyDataSetChanged();
mIndicator.notifyDataSetChanged(); //atualiza lista
//
Log.i("TESTE", "Add novo mês INICIO 2 '"+Funcoes.dateToStrMesAno(dataBase)+"' "+new Date());
}else if(position == LISTA_MESES_CONTENT.size()-1){
//adiciona um item a lista no fim
Date dataBase = Funcoes.addOrRemoveMonth(new Date(LISTA_MESES_CONTENT.get(position).getTime()), 1); //adiciona 1 mês
LISTA_MESES_CONTENT.add(dataBase); //adiciona um novo mês na lista
Log.i("TESTE", "Add novo mês FIM 1 '"+Funcoes.dateToStrMesAno(dataBase)+"' "+new Date());
mIndicator.notifyDataSetChanged(); //atualiza lista
Log.i("TESTE", "Add novo mês FIM 2 '"+Funcoes.dateToStrMesAno(dataBase)+"' "+new Date());
}
}
Ao inflar o layout ele passa por esse método:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_main, null);
//mContent guarda o més e ano no tipo String
((TextView)view.findViewById(R.id.text)).setText(mContent);
//Log para verificar quando ele passa por esse método
Log.i("TESTE", "Inflando view '"+mContent+"' "+new Date());
return view;
}
Tentei alguns métodos da PageIndicator, ViewPager e da classe que implementa FragmentPagerAdapter mais sem sucesso. Se precisarem do projeto eu envio em anexo!
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
0 comentários:
Postar um comentário