Pergunta

O que você acha que é a melhor maneira de fazer um assistente como aplicação (usuário pode navegar entre as telas com um botão ao lado e atrás, e cada tela tem que salvar alguns dados estado) em plataforma Android.

Eu principalmente posso pensar em duas abordagens:

  1. Ter uma atividade + vista para cada tela e então eu fazer a troca tela chamando cada atividade. O que fazer este bom é que eu posso usar o botão do sistema de volta como meu manipulador de volta e eu não tenho que cuidar disso sozinho, igualmente cada atividade vai salvar o seu próprio estado.

  2. Ter uma atividade e muitos pontos de vista, e que eu mudar de vistas em cada mudança de tela, isso me ajuda a voltar a usar mais código, mas faz economizando estados de uma confusão.

O que você acha? Qual é a melhor maneira de fazer isso no Android?

Foi útil?

Solução

Eu sugiro ir com 2 como ele se encaixa a meta de atividades e pontos de vista. Salvar o estado, neste caso, é fácil - se você usar o padrão MVC, você pode simplesmente ter um objeto modelo que é repassada para as vistas. Cada exibição terá partes do modelo que pode ler / escrever. Não importa onde você está, o modelo deve ter sempre o estado atual. Se você receber disposto, basta salvar o modelo. Restaurar trabalhos automaticamente desde que você já leu a partir do modelo quando você mostrar cada página.

Outras dicas

Eu desenvolvi uma biblioteca Android leve, que é construído em cima de do Android ViewPager que pode ser usado para a criação de assistente como atividades. Confira:. WizarDroid

Eu tenho ido com a primeira abordagem, uma vez que parece mais natural. Outro usos de aplicativos ViewFlipper para mudar pontos de vista, mas que está longe de qualquer coisa como assistente.

Eu acho que 2 é melhor. Coloque cada "página" em um ponto de vista e em seguida, basta alternar entre mostrar e ocultar-los. Torna trivial para fazer transições agradáveis. Em que estado você está pensando em manter? O único que não funciona automaticamente seria o foco e eu acho que você provavelmente vai querer redefinir que cada vez que mudar de página. Também é trivial para pegar de volta se você acha que é o comportamento certo para a sua aplicação.

Com 1 você pode reutilizar quase todo o seu código (basta definir sua própria classe WizardBase), mas eu acho que as atividades são muito mais lentos do lançamento (e requerem mais memória) do que alternar entre vistas.

9 anos atrás, esta era, obviamente, uma chaleira muito diferente de peixes - mas eu acho que a melhor maneira de fazer isso agora é com fragmentos.

Tenha um fragmento para cada 'página' no assistente, deixando-a lidar com o seu próprio ciclo de vida e estado.

Alterar página de dentro de cada fragmento com o Fragment.getFragmentManager ( ) -. isso retorna o FragmentManager da atividade pai, permitindo que o fragmento para substituir si

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top