5

私はMonoDroidアプリケーションを持っており、すべてのアクティビティをポートレートでのみ表示するようにしたいと思います。Mono for Android - 縦向きのすべてのアクティビティ

などのアクティビティベースクラッセ作成についてかかわらず、私がしたい:

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

を自分のアプリケーション内の他のすべての活動は、それを継承する必要があります(あまりにも重複を避けるとScreenOrientation = ScreenOrientation.Portraitを定義するための中心的な場所を持っています) 。

しかし、ActivityAttribute定義を見ると、継承をサポートしていないようです。

[Serializable] 
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] 
public sealed class ActivityAttribute : Attribute { ... } 
  1. 私は自分のアプリケーションのすべての活動にActivity (ScreenOrientation = ScreenOrientation.Portrait)を配置する必要がありますか?
  2. Androidの世界で縦向きのみをサポートすることは悪い考えですか? (私はPortrait-only iOSアプリケーションがあり、実際にうまく動作し、ランドスケープで動作する必要はありません)。

答えて

5

各アクティビティに属性を配置する必要があります。ネイティブAndroidアプリケーションを作成している場合は、マニフェスト内の各アクティビティにandroid:screenOrientation="portrait"というマークを付ける必要があります。

残念ながら、属性は気づいたとおりに継承されません。

+0

これは本当にsuxです。なぜなら、自分の活動のためのいくつかのデフォルトテーマ/バックグラウンドイメージ/オリエンテーション設定をしたいのですが、それはベースクラスではできません。これは多くのコードの繰り返しにつながります –

+0

@EduardoCoelhoベースクラスを使用することはできますが、各アクティビティにはオリエンテーションを個別に設定する必要があります – dmck

関連する問題