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

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

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

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

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

ダイアログ

ユーザーにウィンドウやボックス等の形で個別で表示されるフォームであり、ユーザーに判断を促す目的で表示される。ユーザーが見逃す事のないよう、操作中のフォーム上にポップアップして表示される。

Xamarin

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

Q&A

解決済

1回答

1344閲覧

Androidのダイアログを下の戻るボタンで閉じなくする方法

GId

総合スコア17

C#

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

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

ダイアログ

ユーザーにウィンドウやボックス等の形で個別で表示されるフォームであり、ユーザーに判断を促す目的で表示される。ユーザーが見逃す事のないよう、操作中のフォーム上にポップアップして表示される。

Xamarin

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

0グッド

0クリップ

投稿2020/06/01 04:18

編集2020/06/01 07:07

アプリを開いたらログインダイアログを出す処理を出したいのですが、戻るボタンがそれらを無効にできてしまうせいでログインをしないでもそのまま使うことが出来てしまう所で悩んでいます。
OnBackPressedで戻るボタンを無効化するところまでは分かりましたが、それ以外はわかりません。

流れ
アプリ開く

ログイン画面(ダイアログ表示)

裏でメイン画面が表示される

ログインしたらメイン画面にいける

追記:最初に開くページにOnBackPressedを追加してメイン画面に戻さなくすることはできました。
ほかの所で置きましたら、"オーバーライドする適切なメソッドが見つかりませんでした。"しか出てきません。

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

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

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

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

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

hoshi-takanori

2020/06/01 08:35

ログインに失敗する可能性もあるので、ログインダイアログの裏でメイン画面を表示するという設計が良くないと思います。ログインは独立した画面にして、ログインに成功してからメイン画面に遷移すべきでは。
guest

回答1

0

ベストアンサー

ログイン画面のダイアログをどのように表示しているのかはわかりませんが、以前の質問から察するに、AiForms.Dialogsを利用しているのでしょうか?そうであれば、これは戻るボタンの制御には対応していなさそうです。
なので、代わりにRg.Plugins.Popupを利用してみてはいかがでしょうか?これなら、戻るボタンを無効にすることができます。
以下に簡単な例を示します。

xaml

xaml

1<pages:PopupPage xmlns="http://xamarin.com/schemas/2014/forms" 2 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 3 xmlns:pages="clr-namespace:Rg.Plugins.Popup.Pages;assembly=Rg.Plugins.Popup" 4 x:Class="Sample.LoginPage"> 5 <StackLayout VerticalOptions="Center" HorizontalOptions="FillAndExpand" Padding="32" > 6 <StackLayout BackgroundColor="White" Padding="16"> 7 <Entry Placeholder="ユーザー名" /> 8 <Entry Placeholder="パスワード" /> 9 <Button Text="ログイン" Clicked="OnClick"/> 10 </StackLayout> 11 </StackLayout> 12</pages:PopupPage>

C#

C#

1public partial class LoginPage : PopupPage 2{ 3 public LoginPage() 4 { 5 InitializeComponent(); 6 } 7 8 private void OnClick(object sender, EventArgs e) 9 { 10 // 閉じる 11 PopupNavigation.Instance.PopAsync(); 12 } 13 14 protected override bool OnBackButtonPressed() 15 { 16 // trueで戻るボタンを無効 17 return true; 18 } 19 20 protected override bool OnBackgroundClicked() 21 { 22     // falseでバックグラウンドのタップでのキャンセルを無効 23 return false; 24 } 25}

表示する方法

C#

1PopupNavigation.Instance.PushAsync(new LoginPage());

初期設定も忘れないようにしてください

投稿2020/06/01 17:54

編集2020/06/01 18:02
f-miyu

総合スコア1625

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

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

GId

2020/06/02 00:12

ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問