2015-04-14 6 views
5

Ho una PictureFragment che uso per mostrare un'immagine a schermo intero quando la seleziono dalla mia miniatura. Funziona bene, ma quando ruoto il mio smartphone, anche l'immagine ruota e viene ridimensionata in modo molto brutto, vista la sua altezza ora la sua larghezza effettiva e così via. Come posso disattivare la rotazione per questo frammento? Ho sempre letto come farlo per un'intera attività, ma per il resto dell'attività che ho eseguito voglio mantenere la rotazione automatica. Oppure, se questo è anche facile, come posso riuscire a ridimensionare l'immagine in modo deciso sulla rotazione per mantenere le sue proporzioni?Disattiva rotazione automatica in frammento

Apprezzo qualsiasi aiuto.

+0

È meglio impostare "Orientamento" su "Attività". –

+0

Ho solo un activtiy e passaggio tra gli schermi tramite frammentmanager. E perché ottengo i pollici in giù per questa domanda? – unknown

+0

Penso che questo possa rispondere alla tua domanda: http://stackoverflow.com/questions/13305861/fool-proof-way-to-handle-fragment-on-orientation-change –

risposta

17

Nel suo Fragment chiamata all'interno onResume per bloccare al ritratto:

getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

poi in per sbloccare l'orientamento:

getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR); 

OBS! Per il bene, utilizzare if(getActivity != null) prima di utilizzare questo metodo.

+0

Abbastanza OBS ... Ancora grazie. – unknown