Почему установка ImeOptions на Next в пользовательском рендерере Xamarin.forms не приводит меня к следующему полю в Android - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть форма с несколькими полями в моем приложении в Xamarin.Forms.Мне нужно предоставить текст «Далее» на программной клавиатуре Android, и после нажатия «Далее» это должно привести меня к следующему полю.

Мой код в customRenderer:

Control.ImeOptions = Android.Views.InputMethods.ImeAction.Next;
Control.SetImeActionLabel("Next",Android.Views.InputMethods.ImeAction.Next);

Это устанавливаеттекст на клавиатуре «Далее», но это не приведет меня к следующему полю.

Я также попытался написать некоторый код в OnAppearing () xaml.cs:

entryOne.Completed+= (object sender, EventArgs e) =>
   {entryTwo.Focus(); };

Даже это не сработало.

Кроме того, приведенный ниже код утверждает, что на кнопке софт-клавиатуры Android отображается «Что угодно», но он показывает значение перечисления ImeAction, которое в приведенном ниже случае будет «Далее»:

Control.SetImeActionLabel("Whatever",Android.Views.InputMethods.ImeAction.Next);

1 Ответ

1 голос
/ 08 апреля 2019

Xamarin.Forms Entry предоставляет эту функцию, вы можете использовать свойство ReturnType для установки клавиатуры и ReturnCommand для написания кода, какую запись вы хотите сосредоточить на щелчке этого.

В вашемxaml:

    <Entry   x:Name="txtUserName"
             ReturnCommand="{Binding loginCompleted}"
             ReturnType="Next"/>
    <Entry   x:Name="txtPassword"/>

По вашему мнению модель:

      public ICommand loginCompleted
        {
            get { return new Command(loginCompletedEvent); }
        }

        /// <summary>
        /// Event for making the keyboard focus on password Entry
        /// </summary>
        private void loginCompletedEvent()
        {
            Entry entryPassword = m_view.FindByName<Entry>("txtPassword");
            entryPassword.Focus();
        }

Надеюсь, что это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...