質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

2回答

6276閲覧

ステータスバーとナビゲーションバーを隠したい

nasama

総合スコア16

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

0グッド

0クリップ

投稿2017/01/27 03:06

編集2017/01/31 11:52

###前提・実現したいこと
画面を横に固定し、ステータスバーとナビゲーションバーを隠してある画面を作成したいです。
画面上から下にスワイプするとステータスバーが表示され、右端から左にスワイプするとナビゲーションバーが表示される画面を作成したいと考えています。

いろいろと検索し、ナビゲーションバーを隠すために以下のコードを使っている方が多く見受けられたので記述しました。

NavigationPage.SetHasNavigationBar(this, false);

しかし、

CS0103 現在のコンテキストに 'NavigationPage' という名前は存在しません。

とエラーが出てしまい、クイックアクションとリファクタリングもどれを試してもうまくいきません。
これ以外に何か追加しないと動作しないといった情報が見当たらず、どうしたらよいものか詰まっています。

現在のコードは以下の通りです。

using Android.App; using Android.Widget; using Android.OS; using Android.Content.PM; namespace App8 { [Activity(Label = "App8", MainLauncher = true, Icon = "@drawable/icon")] 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); RequestedOrientation = ScreenOrientation.SensorLandscape; NavigationPage.SetHasNavigationBar(this, false); } } }

###追記
回答ありがとうございます。
Xamarin.Androidの方法ですと、

No resource found that matches the given name: attr 'windowNoTitle'. No resource found that matches the given name: attr 'windowActionBar'. Error retrieving parent for item: No resource found that matches the given name '@style/Theme.AppCompat.Light'.

とエラーが表示されてしまい、コード内からクイックアクションやリファクタリングもできず、解決方法がわからなかったので断念しました。
Xamarin.Formsではないと使用できないとのことでしたので、Xamarin.Formsで作成しなおしました。
エラーは消えましたが、画面はNavigationPage.SetHasNavigationBar(this, false);を入れる前と変わらず、どこにコードを書いてよいかわからない状態です。またxamlファイルがないので、編集部分がわからない状態です。

現在以下の状態です。手探りですが、エラーが出ない場所にNavigationPage.SetHasNavigationBar(this, false);を入れました。
MainActivity.csにはどこに入れても「CS1503 引数 1: は 'XFApp3.Droid.MainActivity' から 'Xamarin.Forms.BindableObject' へ変換することはできません。」
と、エラーが出てしまったので編集していません。

App.cs

using System; using System.Collections.Generic; using System.Linq; using System.Text; using Xamarin.Forms; namespace XFApp3 { public class App : Application { public App() { NavigationPage.SetHasNavigationBar(this, false); // The root page of your application NavigationPage.SetHasNavigationBar(this, false); MainPage = new ContentPage { Content = new StackLayout { VerticalOptions = LayoutOptions.Center, Children = { new Label { HorizontalTextAlignment = TextAlignment.Center, Text = "Welcome to Xamarin Forms!" } } } }; NavigationPage.SetHasNavigationBar(this, false); } protected override void OnStart() { NavigationPage.SetHasNavigationBar(this, false); // Handle when your app starts } protected override void OnSleep() { NavigationPage.SetHasNavigationBar(this, false); // Handle when your app sleeps } protected override void OnResume() { NavigationPage.SetHasNavigationBar(this, false); // Handle when your app resumes } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tak1wa

2017/01/27 04:04

Xamarin.FormsではなくXamarin.Androidでした?
nasama

2017/01/27 12:22 編集

Formsは聞いたことがありますが、違いがわからず入れていませんので、デフォルトのものかと思われます。「Blank App(Android)」というものですが、こちらはXamarin.Androidでよろしいでしょうか?
guest

回答2

0

NavigationPage.SetHasNavigationBar(this, false); は Xamarin.Forms(クロスプラットフォーム用のフレームワーク) の API であり、質問者さんが書かれているコードは Xamarin.Android(Android 用の API) のアプリのようです。

なので、そのクラス・メソッドが存在しない、というエラーが出ています。

Xamarin.Forms と Xamarin.Android などについてよくわからないという場合は、

などの Xamarin の概要について学ばれるとよいでしょう。

Xamarin.Android で、ステータスバー、ナビゲーションバー(ActionBar と呼ばれます)を非表示にする方法は、 Android-Java のやり方がそのまま使えます。

投稿2017/01/27 16:48

amay077

総合スコア1075

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nasama

2017/01/31 11:54

ありがとうございます。Xamarin.Formsについて回答が来ていたのですが、そういうことだったのですね… Xamarin.Formsで新規に作成し、内容を追記しました。お知恵をお貸し頂ければ幸いです。
guest

0

XAMLにNavigationPage追加しましたか?
参考

投稿2017/01/27 03:36

turbgraphics200

総合スコア4267

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nasama

2017/01/27 12:39

ありがとうございます。とりあえず追加した内容を追記しました。現状どのように追加したらよいのか試し試しやっていますが、なかなかエラーが消えません。よろしければ追記する内容について再度ご回答いただけましたら幸いです。
turbgraphics200

2017/01/27 12:48

using Xamarin.Forms; を追加してください。
nasama

2017/01/27 12:58

「CS0234 型または名前空間の名前 'Forms' が名前空間 'Xamarin' に存在しません (アセンブリ参照があることを確認してください)。」とエラーが帰ってきました。一応クイックアクションとリファクタリングすべてを試しましたが、解決ができませんでした。 念のため確認しますが、csファイル内に書けばいいのですよね?
turbgraphics200

2017/01/27 13:43

そもそも、これってプロジェクトを作成するときにXamarin.Formsで作成してますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問