5

Mam aplikację MonoDroid i chciałbym, aby wszystkie moje działania były prezentowane tylko w orientacji pionowej.Mono dla Androida - Wszystkie czynności w orientacji pionowej

bym chociaż o tworzeniu Classe bazie aktywności takich jak:

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

Wszystkie inne działania w moim wniosku powinna następnie dziedziczą z niego (zbyt uniknąć powtórzeń i mieć centralne miejsce definiowania ScreenOrientation = ScreenOrientation.Portrait) .

Jednak jeśli spojrzysz na definicję ActivityAttribute, wygląda na to, że nie obsługuje dziedziczenia.

[Serializable] 
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] 
public sealed class ActivityAttribute : Attribute { ... } 
  1. Czy muszę umieścić Activity (ScreenOrientation = ScreenOrientation.Portrait) we wszystkich działaniach mojego wniosku?
  2. Czy to jest kiepski pomysł, aby wspierać tylko orientację pionową w świecie Androida? (Mam aplikację do portretu iOS, która działa naprawdę dobrze i nie musi działać w krajobrazie).

Odpowiedz

5

Musisz umieścić atrybut na każdym działaniu. Jeśli tworzysz natywną aplikację dla systemu Android, musisz zaznaczyć każde działanie w manifeście za pomocą android:screenOrientation="portrait", używając tego atrybutu, aby to samo zrobiło w Mono For Android.

Niestety atrybut nie dziedziczy, jak zauważyłeś.

+0

To naprawdę sux, ponieważ jeśli chcę ustawić domyślne motywy/obrazy tła/ustawienia orientacji dla moich działań, nie mogę zrobić tego w klasie bazowej. To prowadzi do wielu powtórzeń kodu. –

+0

@EduardoCoelho Nadal możesz używać klasy bazowej, ale każde działanie musi mieć ustaloną orientację indywidualnie – dmck

Powiązane problemy