Как скрыть / закрыть SoftKeyboard в Xamarin Android? - PullRequest
1 голос
/ 05 июня 2019

В моей программе есть стандартная клавиатура, которую я использую для «Вступления»

Однако я тестирую некоторые вещи, и в итоге я поставил IsEnabled = True, но когда программа переходит в Focus на этомEntry, по умолчанию появляется Android Softkeyboard, и я не хочу, чтобы он появлялся, когда я нажимаю Entry.

Как не отображать SoftKeyboard в Entry?

        <Label Text="CÓD VENDEDOR:"
               FontSize="Large"
               FontAttributes="Bold"
               TextColor="Black"/>

        <Entry Placeholder="000000000000000"
               Text="{Binding codVend}"
               Keyboard="numeric"
               MaxLength="15"
               FontSize="Large"
               FontAttributes="Bold"
               IsEnabled="True"
               TextColor="Black"
               InputTransparent="False"/>

        <Label Text="N LÓGICO:"
               FontSize="Large"
               FontAttributes="Bold"
               TextColor="Black"/>

        <Entry Placeholder="00000000"
               Text="{Binding codTrn}"
               Keyboard="Numeric"
               MaxLength="8"
               IsEnabled="True"
               FontSize="Large"
               FontAttributes="Bold"
               TextColor="Black"
               InputTransparent="False"/>

        <StackLayout Padding="2"
                 HorizontalOptions="Center"
                 VerticalOptions="Center">

            <ActivityIndicator IsVisible="{Binding IsBusy}"
                               IsRunning="{Binding IsBusy}"
                               Color="Blue"/>
            <!-- Place new controls here -->

            <StackLayout HorizontalOptions="Center"
                     VerticalOptions="Center"
                     Padding="5">

                <Grid HorizontalOptions="Center"
                  VerticalOptions="Center">

                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="60"/>
                        <ColumnDefinition Width="60"/>
                        <ColumnDefinition Width="60"/>
                        <ColumnDefinition Width="60"/>
                    </Grid.ColumnDefinitions>
                    <!--Row 1-->
                    <Button Text="1"
                        BackgroundColor="Blue"
                        TextColor="White"
                        BorderRadius="10"
                        Grid.Column="0"
                        Grid.Row="0"
                        HeightRequest="60"
                        FontSize="Large"
                        FontAttributes="Bold"
                        HorizontalOptions="Center"
                        VerticalOptions="Center"
                        Command="{Binding NumericCommand}"
                        CommandParameter="1"/>
                    <Button Text="2"
                        BackgroundColor="Blue"
                        TextColor="White"
                        BorderRadius="10"
                        Grid.Column="1"
                        Grid.Row="0"
                        HeightRequest="60"
                        FontSize="Large"
                        FontAttributes="Bold"
                        HorizontalOptions="Center"
                        VerticalOptions="Center"
                        Command="{Binding NumericCommand}"
                        CommandParameter="2"/>
                    <Button Text="3"
                        BackgroundColor="Blue"
                        TextColor="White"
                        BorderRadius="10"
                        Grid.Column="2"
                        Grid.Row="0"
                        HeightRequest="60"
                        FontSize="Large"
                        FontAttributes="Bold"
                        HorizontalOptions="Center"
                        VerticalOptions="Center"
                        Command="{Binding NumericCommand}"
                        CommandParameter="3"/>
                    <Button Text="OK"
                        BackgroundColor="Green"
                        TextColor="White"
                        BorderRadius="10"
                        Grid.Column="3"
                        Grid.Row="0"
                        HeightRequest="60"
                        FontSize="Large"
                        FontAttributes="Bold"
                        HorizontalOptions="Center"
                        Grid.RowSpan="4"
                        Command="{Binding SaveCommand}"/>
                    <!--Row 2-->
                    <Button Text="4"
                        BackgroundColor="Blue"
                        TextColor="White"
                        BorderRadius="10"
                        Grid.Column="0"
                        Grid.Row="1"
                        HeightRequest="60"
                        FontSize="Large"
                        FontAttributes="Bold"
                        HorizontalOptions="Center"
                        VerticalOptions="Center"
                        Command="{Binding NumericCommand}"
                        CommandParameter="4"/>
                    <Button Text="5"
                        BackgroundColor="Blue"
                        TextColor="White"
                        BorderRadius="10"
                        Grid.Column="1"
                        Grid.Row="1"
                        HeightRequest="60"
                        FontSize="Large"
                        FontAttributes="Bold"
                        HorizontalOptions="Center"
                        VerticalOptions="Center"
                        Command="{Binding NumericCommand}"
                        CommandParameter="5"/>
                    <Button Text="6"
                        BackgroundColor="Blue"
                        TextColor="White"
                        BorderRadius="10"
                        Grid.Column="2"
                        Grid.Row="1"
                        HeightRequest="60"
                        FontSize="Large"
                        FontAttributes="Bold"
                        HorizontalOptions="Center"
                        VerticalOptions="Center"
                        Command="{Binding NumericCommand}"
                        CommandParameter="6"/>
                    <!--Row 3-->
                    <Button Text="7"
                        BackgroundColor="Blue"
                        TextColor="White"
                        BorderRadius="10"
                        Grid.Column="0"
                        Grid.Row="2"
                        HeightRequest="60"
                        FontSize="Large"
                        FontAttributes="Bold"
                        HorizontalOptions="Center"
                        VerticalOptions="Center"
                        Command="{Binding NumericCommand}"
                        CommandParameter="7"/>
                    <Button Text="8"
                        BackgroundColor="Blue"
                        TextColor="White"
                        BorderRadius="10"
                        Grid.Column="1"
                        Grid.Row="2"
                        HeightRequest="60"
                        FontSize="Large"
                        FontAttributes="Bold"
                        HorizontalOptions="Center"
                        VerticalOptions="Center"
                        Command="{Binding NumericCommand}"
                        CommandParameter="8"/>
                    <Button Text="9"
                        BackgroundColor="Blue"
                        TextColor="White"
                        BorderRadius="10"
                        Grid.Column="2"
                        Grid.Row="2"
                        HeightRequest="60"
                        FontSize="Large"
                        FontAttributes="Bold"
                        HorizontalOptions="Center"
                        VerticalOptions="Center"
                        Command="{Binding NumericCommand}"
                        CommandParameter="9"/>
                    <!--Row 4-->
                    <Button Text="X"
                        BackgroundColor="Red"
                        TextColor="White"
                        BorderRadius="10"
                        Grid.Column="0"
                        Grid.Row="3"
                        HeightRequest="60"
                        FontSize="Large"
                        FontAttributes="Bold"
                        HorizontalOptions="Center"
                        VerticalOptions="Center"
                        Command="{Binding ClearAllCommand}"/>
                    <Button Text="0"
                        BackgroundColor="Blue"
                        TextColor="White"
                        BorderRadius="10"
                        Grid.Column="1"
                        Grid.Row="3"
                        HeightRequest="60"
                        FontSize="Large"
                        FontAttributes="Bold"
                        VerticalOptions="Center"
                        Command="{Binding NumericCommand}"
                        CommandParameter="0"/>
                    <Button Text="C"
                        BackgroundColor="Yellow"
                        TextColor="White"
                        BorderRadius="10"
                        Grid.Column="2"
                        Grid.Row="3"
                        HeightRequest="60"
                        FontSize="Large"
                        FontAttributes="Bold"
                        HorizontalOptions="Center"
                        Command="{Binding ClearCommand}"/>
                </Grid>
            </StackLayout>
        </StackLayout>
    </StackLayout>
</ContentPage.Content>

1 Ответ

0 голосов
/ 06 июня 2019

Настройка записи в родном андроиде может сделать это:

Во-первых, создав MyEntry

public class MyEntry : Entry
{
}

Во-вторых, используя в Xaml :

<ContentPage ...
    xmlns:local="clr-namespace:CustomRenderer;assembly=CustomRenderer"
    ...>
    ...
    <local:MyEntry Text="In Shared Code" />
    ...
</ContentPage>

В-третьих, изменить в Renderer на Android

using Xamarin.Forms.Platform.Android;

[assembly: ExportRenderer(typeof(MyEntry), typeof(MyEntryRenderer))]
namespace CustomRenderer.Android
{
    class MyEntryRenderer : EntryRenderer
    {
        public MyEntryRenderer(Context context) : base(context)
        {
        }

        protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
        {
            base.OnElementChanged(e);

            if (Control != null)
            {
                Control.InputType = Android.Text.InputTypes.Null;
                //Set input type be null, keyboard will never appear,even when click the Entry.If need show keyboard, this way also can be used.
                //Control.InputType = Android.Text.InputTypes.ClassText;
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...