2011-10-22 1 views
6

qualcuno sa (o può mostrarmi un esempio) di come posso sviluppare un'applicazione che si comporta proprio come honeycomb gmail? Come posso passare da un layout di cornice all'altro e modificarne le dimensioni per visualizzare i contenuti. come quando fai clic sul tuo messaggio e poi il frammento galleggia a sinistra per lasciare spazio al messaggio e scompare il frammento contenente le caselle.Gmail a nido d'ape come l'applicazione

risposta

6

Penso che sia triste tutto :) Fornire un layout per i componenti, Suggerirei un LinearLayout con orientamento orizzontale. Poi aggiungi tutti e tre i frammenti e nascondi il terzo - contenente il messaggio.

FolderListFragment folderListFragment = new FolderListFragment(); 
MessageListFragment messageListFragment = new MessageListFragment(); 
MessageFragment messageFragment = new MessageFragment(); 

FragmentTransaction ft = getFragmentManager().beginTransaction(); 
ft.add(container_view_layout, folderListFragment); 
ft.add(container_view_layout, messageListFragment); 
ft.add(container_view_layout, messageFragment); 
ft.hide(messageFragment); 
ft.commit(); 

Poi, quando si desidera visualizzare un messaggio frammento:

void showMessage(Message message) { 
    // Initialize messageFragment 
    messageFragment.setMessage(message); 
    FragmentTransaction ft = getFragmentManager().beginTransaction(); 
    ft.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left); 
    ft.hide(folderListFragment); 
    ft.show(messageFragment); 
    ft.commit(); 
} 

void showFolders() { 
    FragmentTransaction ft = getFragmentManager().beginTransaction(); 
    ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right); 
    ft.hide(folderListFragment); 
    ft.show(messageFragment); 
    ft.commit(); 
} 

E per le animazioni del slide_in_left per frammento cartella sarebbe, è possibile derivare le altre (400 è la larghezza del componente):

<set> 
    <objectAnimator 
     android:propertyName="x" 
     android:duration="500" 
     android:valueFrom="-400" 
     android:valueTo="0" 
     android:valueType="intType"/> 
</set>