2015-12-01 10 views
9

La mia versione minima app è 10 e fino ad ora sto usando la libreria di supporto per i frammentiProblema quando si rimuove la libreria supportV4

Ora voglio aggiungere l'animazione di vibrazione per pochi transizione frammento Così come per la guida di Android abbiamo bisogno di usare l'animatore per quello e ha il supporto dal livello API 11 che non è un problema per me.

ma anche bisogno di utilizzare il getFragmentManager invece getSupportFragmentManager

così ho rimosso la libreria di supporto mi ha cambiato la versione minima da 10 a 11 errori stanno venendo

perché nella mia app ho FragmentTabhost e getChildFragmentManager(). FragmentTabHost disponibile solo su libreria di supporto e per impostare FragmentManager utilizzando il getChildFragmentManager che non permetterà che lo faccia perché richiede livello di API 17

alcun aiuto apprezzato. Fatemi sapere se avete bisogno di maggiori dettagli

Grazie in anticipo.

+1

Non ho capito che il tuo obiettivo è supportare l'API versione 11 e successive. Si prega di precisarlo più chiaramente dopo la prima frase. –

+1

Penso che sarebbe meglio se tu pubblicassi il codice di esempio, quelli importanti correlati. Puoi pubblicare il codice su Github e fornire il link. A questo punto, penso che sia più facile darti un progetto di esempio per l'animazione. Sei interessato solo a Flip Animation? –

+1

@TheOriginalAndroid Sì, sto cercando l'animazione di flip ma ne ho bisogno con la libreria di supporto e se rimuovo la libreria di supporto creerà più problemi come ho detto a FragmentTabHost e getChildFragmentManager e altri sttuf – Sandy

risposta

3

L'animazione personalizzata funziona anche con Support Fragment Manager. sarai in grado di utilizzare il gestore dei frammenti di supporto e ancora di animarlo.

+0

usa i frammenti di supporto richiede l'animazione resa urce dalla cartella anim solo E abbiamo bisogno di usare l'animatore per flip, quindi è necessario creare la cartella animatore – Sandy

4

Penso che la codifica dell'animazione per livello API 10 e inferiore sia impegnativa e piuttosto obsoleta. Posso dare un suggerimento, leggere la pagina web @NineOldAndroids from the active developer Jake Wharton. Supporta Android 1.0 e versioni successive, anche se deprecato con nuove librerie Android. Quindi una lezione è che sarebbe più facile per te creare un nuovo progetto, fondamentalmente ricominciare invece di convertire il codice.

Anche se si utilizzano animazioni esistenti come ValueAnimator, il livello API è 11 e oltre. Stai colpendo quel confine tra il livello 10 e 11 per l'animazione.

Buona fortuna e tenerci informati.

+0

Sì, ho creato una nuova app con versione min 11 ora ho aggiunto l'animazione flip con la nuova animazione api usando animator ora i voglio aggiungere le schede in basso sull'app richiede 'FragmentTabHost' che solo nella libreria di supporto ho fatto il workaround per questo anche copiato direttamente la classe' FragmentTabHost' su app ma ora devo usare getChildFragmentManager in quanto richiede che si ha da api 17 e se voglio renderlo supportato da 11 quindi forzare completamente il bisogno di usare la libreria di supporto e se uso supporto non posso fare animazione flip che mi fa cadere di nuovo – Sandy

5

uso android.support.v4.fragment invece di android.app Frammento nel progetto

ed è possibile utilizzare seguente frammento per l'animazione, mentre l'aggiunta/sostituzione frammento

getSupportFragmentManager().beginTransaction() 
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) 
.replace(R.id.fragment, new FragmenntTwo()) 
.commit(); 

dove FragemntTwo() è il frammento che stai gonfiando. Puoi anche usare la tua animazione personalizzata sostituendo setTransition (..) con setCustomAnimations (..)

+1

Quindi per favore suggerisci come posso fare l'animazione flip sulla transizione dei frammenti – Sandy

2

Per FragmentTabhost, ho creato un programma con app.Fragment, ma improvvisamente il mio PM mi ha detto che voleva usare ViewPager + Fragment. Quello che ho fatto è stato copiare il FragmentPagerAdapter.class da v4.jar e sostituire tutti questi v4.Fragment con app.Fragment. Penso che questo possa aiutarti. E per getChildFragmentManager(), @SuppressLint("NewApi") potrebbe aiutarti.

+0

ma @SuppressLint ("NewApi") nasconderà solo l'errore ma non funzionerà con la versione api inferiore quindi 17 lasciami correggi se ho sbagliato – Sandy