键盘弹出其隐藏最后一行网格

Posted

技术标签:

【中文标题】键盘弹出其隐藏最后一行网格【英文标题】:keyboard popup its hide last row of grid 【发布时间】:2017-06-16 10:42:19 【问题描述】:

当键盘弹出隐藏最后一行网格时,我在 xamarin 表单 android 中使用 AppCompact 主题 Before Keyboard Popup see Image

下面是我的代码。我创建了具有标题、描述的网格。我想在键盘出现时在键盘上方显示相机图标及其栏,并在键盘隐藏时返回屏幕底部。

<Grid RowSpacing="0" VerticalOptions="FillAndExpand">
        <Grid.RowDefinitions>
            <RowDefinition Height="80" />
            <RowDefinition Height="*" />
            <RowDefinition Height="50" />
        </Grid.RowDefinitions>
        <StackLayout
            Grid.Row="0"
            Padding="10,8"
            BackgroundColor="White"
            HorizontalOptions="FillAndExpand"
            Orientation="Horizontal">
            <Entry
                x:Name="GeneralPostTitle"
                Margin="10,10,10,0"
                FontSize="20"
                HorizontalOptions="FillAndExpand"
                Placeholder="Title"
                PlaceholderColor="Gray"
                TextColor="Black"
                VerticalOptions="End" />
        </StackLayout>
        <StackLayout
            Grid.Row="1"
            Padding="10,0"
            BackgroundColor="White"
            HorizontalOptions="FillAndExpand"
            Spacing="0"
            VerticalOptions="FillAndExpand">
            <StackLayout Padding="0" VerticalOptions="Fill">
                <customRenderer:PlaceholderEditor
                    x:Name="EditorDescription"
                    Margin="10,10,10,0"
                    FontSize="22"
                    HeightRequest="130"
                    HorizontalOptions="Fill"
                    Placeholder="Add Description"
                    PlaceholderTextColor="Gray"
                    TextColor="Gray" />
            </StackLayout>
            <ScrollView Padding="10" Orientation="Horizontal">
                <StackLayout
                    x:Name="Images"
                    HorizontalOptions="FillAndExpand"
                    Orientation="Horizontal"
                    Spacing="5" />
            </ScrollView>
        </StackLayout>
        <StackLayout
            Grid.Row="2"
            Padding="20,0"
            BackgroundColor="#FAFAFA">
            <Image
                Aspect="AspectFit"
                HeightRequest="40"
                HorizontalOptions="StartAndExpand"
                WidthRequest="30">
                <Image.Source>
                    <OnPlatform
                        x:TypeArguments="ImageSource"
                        Android="camera"
                        WinPhone="Icons/camera.png"
                        ios="Icons/camera.png" />
                </Image.Source>
                <Image.GestureRecognizers>
                    <TapGestureRecognizer Tapped="ImagePost_OnTapped" />
                </Image.GestureRecognizers>
            </Image>
        </StackLayout>
    </Grid>

键盘弹出后看图片

【问题讨论】:

能否请您发布您的布局代码? 【参考方案1】:

您需要设置 SoftInput to AdjustResize 以便 Android 调整视图大小,使其保持可见。在 Forms 中,您可以使用 Forms 2.3.3 中的 platform specifics feature 来执行此操作。

查看this Gist on how to do this in OnCreate()。请注意在 API 21+ 中删除添加到状态栏的底层所需的解决方法。

【讨论】:

我用过这个,但是当我们返回时不隐藏键盘而不是半屏不显示@jimmgarr 我们如何在 Ios 中做同样的事情? @jimmgarr 在 iOS 上,您需要使用自定义渲染器,以便您可以响应出现的键盘并调整视图大小,as seen here。至于你提到的Android问题,我不确定我是否理解。你能创建an MCVE吗?谢谢!

以上是关于键盘弹出其隐藏最后一行网格的主要内容,如果未能解决你的问题,请参考以下文章

弹出软键盘时标题栏隐藏

Android之弹出/隐藏系统软键盘

iOS 键盘处理(改变键盘为完成键),UITextField键盘显示隐藏,弹出,回弹

当键盘弹出时如何隐藏图像小部件?

如何在Android中判断软键盘是不是弹出或隐藏

Android - 隐藏EditText弹出的软键盘输入(SoftInput)