Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Add vs Replace da FragmentTransaction é segredo dos efeitos de transparências de certas telas?

Por acidente eu acabei usando o métod add no lugar do replace e mesmo assim funcionou.

public class ProvasActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle arg0) {

        super.onCreate(arg0);

        setContentView(R.layout.provas);
        FragmentTransaction tx =  getSupportFragmentManager().beginTransaction();
        tx.add(R.id.provas_view, new ListaProvasFragment());
        tx.commit();
    }

}

Então fui parar StackOverflow: https://stackoverflow.com/questions/20682248/difference-between-fragmenttransaction-add-and-fragmenttransaction-replace

Os caras explicam: Que o replace remove todos os fragments empilhados na marcação de frame, digamos assim antes de adicionar o frame. Imaginemos uma pilha de papel num certo lugar e ao colocarmos um papel, limpamos a pilha de pape do lugar. Já no caso do add, o fragment é empilhado na pilha de fragments, sendo interessante para criar efeitos visuais com transparência.

Então esse é o segredo de certas telas de apps que apresentam efeitos de transparências incríveis?Essa é a única técnica?

4 respostas

Oi Romullo,

você pode dar um exemplo desses efeitos de transparências aos quais se refere na pergunta?

Um exemplo que eu estou imaginando que seja o caso da transparência entre flagments empilhados é o efeito de transparência em um app chamado Beyondpod. Acontece quando se move os elementos de uma lista . Se percebe quando se passa um item por cima do outro o efeito de transparência acontece. Ou será que é algo mais sofisticado?

As imagens: https://pasteboard.co/H8UA2br.png

https://pasteboard.co/H8UAq02.png

https://pasteboard.co/H8UATGA.png

solução!

Oi Romullo,

esse tipo de efeito não usa fragments, nem operações no backstack (add ou replace). Na realidade esses efeitos estão associados a uma manipulação da view quando a ação touch é efetuada num elemento da lista. Então, ao tocar no item, é necessário saber sua posição e ir redesenhando o componente enquanto o dedo está sendo arrastado pela tela. Geralmente, como envolve um código bastante chatinho, é comum o uso de bibliotecas que já oferecem esses efeitos.

Eu estava pensando que era meramente deixar o fragment do topo da pilha transparente mostrando o debaixo .