5

Ho un'applicazione MonoDroid e vorrei forzare tutte le mie attività a presentarsi solo in verticale.Mono per Android - Tutte le attività in Orientamento verticale

mi piacerebbe se circa la creazione di una classe una base di attività quali:

[Activity (ScreenOrientation = ScreenOrientation.Portrait)]   
public abstract class BaseActivity : Activity 
{ 
} 

Tutte le altre attività nella mia richiesta dovrebbero quindi ereditare da essa (anche evitare ripetizioni e hanno un posto centrale per la definizione del ScreenOrientation = ScreenOrientation.Portrait) .

Tuttavia, se si guarda la definizione ActivityAttribute, sembra che non supporti l'ereditarietà.

[Serializable] 
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] 
public sealed class ActivityAttribute : Attribute { ... } 
  1. Devo mettere la Activity (ScreenOrientation = ScreenOrientation.Portrait) in tutte le attività della mia applicazione?
  2. È una cattiva idea supportare solo l'orientamento verticale nel mondo Android? (Ho un'applicazione iOS solo verticale che funziona molto bene e non ha bisogno di operare in orizzontale).

risposta

5

È necessario inserire l'attributo su ogni attività. Se stavi creando un'applicazione Android nativa, dovresti contrassegnare ogni attività nel manifest con android:screenOrientation="portrait", utilizzando questo segnale di attributo a Mono affinché Android faccia lo stesso.

Sfortunatamente l'attributo non eredita come notato.

+0

Questo davvero sux, perché se voglio impostare alcuni temi di default/immagini di sfondo/impostazioni di orientamento per le mie attività non posso farlo in una classe base. Ciò ha comportato un sacco di ripetizioni del codice –

+0

@ EduardoCoelho Puoi ancora utilizzare una classe base, ma ogni Attività deve avere l'Orientamento impostato individualmente – dmck

Problemi correlati