0

CrossUI.Droid.Dialogプロジェクトを使用して、Droid プラットフォームで新しいダイアログ ビューを作成しています。MvvmCross フレームワークが提供するバインディングも使用しています。

ダイアログを作成してバインドするために、Droid ビューにあるコードを次に示します。

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        DroidResources.Initialise(typeof(Resource.Layout));

        Root = new RootElement()
            {
                new Section("Private Configuration")
                    {
                        new EntryElement("Name:").Bind(this, "{'Value':{'Path':'Configuration.Name'}}"),
                        new EntryElement("Description:").Bind(this, "{'Value':{'Path':'Configuration.PrivateDescription'}}"),
                        new BooleanElement("Active?").Bind(this, "{'Value':{'Path':'Configuration.Active'}}")
                    },
                new Section("Display Configuration")
                    {
                        new StringElement("Header Title")
                            {
                                Click = (o, e) => GoToHeaderTitleActivity(),
                                LayoutName = "dialog_rootNavigate"
                            }
                    }
            };
    }

アプリを実行すると、ダイアログが表示され、バインディングが正しくなります。

私が抱えている問題は、EntryElement の 1 つに何かを書き込もうとすると、フォーカスが別の場所に移動することです...これは、「テキスト予測」を有効にしている場合にのみ発生します。

Android.Dialogでサンプルを確認しましたが、すべて正常に動作しているようです。

ICS 4.0 を搭載した Galaxy Tab 2 7.0 を使用しています

誰かがこの問題を抱えていましたか?

4

1 に答える 1

0

答えを見つけた!!

Android には、EditText コントロールと ListView が正常に動作しないという既知の問題があるようです。これは、MvvmCross または Monodroid.Dialog の問題ではありません。

これを克服するには (これが存在する理由だと思いますか?)、MvxLinearDialogActivityダイアログを使用してフォームを開発するときに を使用します。問題はすぐに消えます。

クラスのコメントが言うように:

DialogActivity は線形ビューに基づいており、たとえばListView 内のフォーカス可能な EditTextで要素の提案を使用する場合、これはすべての edittext 関連のフォーカスの問題を解決します。

于 2013-12-30T09:35:06.590 に答える