Mono for Android - 所有活动都在纵向方向

5
我有一个MonoDroid应用程序,我希望强制所有的活动只以纵向方向显示。
我考虑创建一个活动基类,例如:
[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 世界中仅支持纵向方向是否是个坏主意?(我有一个仅支持纵向的 iOS 应用程序,它运行良好,不需要在横向上操作。)
1个回答

5
你需要在每个Activity上设置该属性。如果你正在创建一个本地的Android应用程序,你需要在清单文件中标记每个Activity:android:screenOrientation="portrait",使用这个属性会告诉Mono For Android执行相同操作。
不幸的是,正如你所注意到的,该属性无法继承。

这真的很糟糕,因为如果我想为我的活动设置一些默认主题/背景图像/方向设置,我无法在基类中实现。这导致了很多代码重复。 - Eduardo Coelho
@EduardoCoelho 您仍然可以使用基类,但每个Activity需要单独设置方向。 - dmck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接