ネット上ではいろいろ紹介されていますが...
これらのどれも可能(かつ、それぞれ特性あり)なのだと思われますが、次の方法が一番簡単だと思います(当方比)
Xamarin 公式ガイドページより
- Device Orientation (Xamarin.Forms の説明ページ。ただしべたなActivityでも同じ効果)
- Android.Content.PM.ScreenOrientation Enumeration
コード例
Blank App のスケルトンをもとに...
using Android.App;
using Android.Widget;
using Android.OS;
namespace App2
{
[Activity(Label = "App2", MainLauncher = true, Icon = "@drawable/icon",
ScreenOrientation = Android.Content.PM.ScreenOrientation.Landscape)] // <--横長画面に固定するときは Landscape。縦長固定なら Portrait。
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
}
}
}
ActivityAttribute の ScreenOrientation に値を指定してやります。Activity 属性値指定箇所で、カンマを打って S を打ってみましょう。インテリセンスで自動補完されます。指定する値の意味は こちらをご参照あれ。ね、簡単でしょう?!
ちなみに、この ActivityAttribute では、ソフトウエアキーボードの挙動指定などもできるようです。
公式ガイド説明では、ActivityAttribute の振る舞いは「『AndroidManifest.xml』の要素を生成します」だそうです。
Java開発環境ではxmlに記載していた内容をC#のコードに集約させる方向なのかな、Xamarinの思想は。。確かに、単一のコードでプラットフォームをまたげることがXamarinの究極の目的ですからね。