Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Re: Forçar atualização da view na ViewPagerIndicator

Fala Ivan. Achei meio estranho isso, eu ja fiz algumas implementações com PageAdapter e TitlePageIndicator e nunca tive este problema.
Estou um pouco enrrolado agora, mais ja baixei seu projeto e após o almoço eu vou uma olhada.

att:
rbarbioni


Em 30 de abril de 2013 09:44, Iv@n JAVA <x.surian.x@gmail.com> escreveu:

Anexei 2 fotos para mostrar o meu problema que até agora não consegui resolver. No meu caso tanto nas abas quando no TextView que estão em cada fragmento da aba deveria aparecer o mesmo valor. Isso dá certo quando adiciono um item no final da lista, mas quando adiciono no inicio fica igual a imagem 2. Segue projeto que estou testando também em anexo onde a classe principal é VpiAbsTestActivity.java(Obs.: Projeto necessita das bibliotecas de ActionBarSherlock e ViewPagerIndicator).



Em segunda-feira, 29 de abril de 2013 10h57min04s UTC-3, Iv@n JAVA escreveu:
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.
 
 

--
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.
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário