Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4165964
  • 博文数量: 864
  • 博客积分: 17977
  • 博客等级: 上将
  • 技术积分: 8336
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-26 09:59
  • 认证徽章:
个人简介

一个好老好老的老程序员了。

文章分类

全部博文(864)

文章存档

2019年(21)

2018年(88)

2017年(130)

2015年(5)

2014年(12)

2013年(41)

2012年(36)

2011年(272)

2010年(1)

2009年(53)

2008年(65)

2007年(47)

2006年(81)

2005年(12)

分类: Android平台

2019-08-10 16:48:23

选择键盘
Entry和Editor与SearchBar的不同之处在于它们都来自InputView。 有趣的是,尽管Entry和Editor定义了类似的属性和事件,但InputView只定义了一个属性:Keyboard。 此属性允许程序选择显示的键盘类型。 例如,用于键入URL的键盘应该与用于输入电话号码的键盘不同。 所有三个平台都有各种风格的虚拟键盘,适用于不同类型的文本输入。 程序无法选择用于SearchBar的键盘。
此Keyboard属性是Keyboard类型,该类定义了适用于不同键盘用途的键盘类型的七个静态只读属性:

  • Default
  • Text
  • Chat
  • Url
  • Email
  • Telephone
  • Numeric

在所有三个平台上,数字键盘允许输入小数点但不允许输入负号,因此它仅限于正数。
以下程序创建了七个Entry视图,可让您了解这三个平台中如何实现这些键盘。 附加到每个条目的特定键盘由Entry命名为Placeholder定义的属性标识。 这是在用户输入的任何内容之前出现在条目中的文本,作为程序所期望的文本性质的提示。 占位符文本通常是短语,例如“名字”或“电子邮件地址”:


点击(此处)折叠或打开

  1. <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
  2.              xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
  3.              x:Class="EntryKeyboards.EntryKeyboardsPage">
  4.     <ContentPage.Padding>
  5.         <OnPlatform x:TypeArguments="Thickness"
  6.                     iOS="10, 20, 10, 0"
  7.                     Android="10, 0"
  8.                     WinPhone="10, 0" />
  9.     </ContentPage.Padding>
  10.     <ScrollView>
  11.         <StackLayout>
  12.             <StackLayout.Resources>
  13.                 <ResourceDictionary>
  14.                     <Style TargetType="Entry">
  15.                         <Setter Property="VerticalOptions" Value="CenterAndExpand" />
  16.                     </Style>
  17.                 </ResourceDictionary>
  18.             </StackLayout.Resources>
  19.  
  20.             <Entry Placeholder="Default"
  21.                    Keyboard="Default" />
  22.             <Entry Placeholder="Text"
  23.                    Keyboard="Text" />
  24.             <Entry Placeholder="Chat"
  25.                    Keyboard="Chat" />
  26.             <Entry Placeholder="Url"
  27.                    Keyboard="Url" />
  28.  
  29.             <Entry Placeholder="Email"
  30.                    Keyboard="Email" />
  31.             <Entry Placeholder="Telephone"
  32.                    Keyboard="Telephone" />
  33.             <Entry Placeholder="Numeric"
  34.                    Keyboard="Numeric" />
  35.         </StackLayout>
  36.     </ScrollView>
  37. </ContentPage>

占位符显示为灰色文本。 以下是程序首次开始运行时显示的外观:
2018_09_18_155114

与Slider一样,除非您还设置了WidthRequest属性,否则不希望在Entry,Left,Center或Right上设置HorizontalOptions。如果这样做,条目将折叠到非常小的宽度。它仍然可以使用 - Entry自动提供比Entry可以显示更长的文本的水平滚动 - 但你应该真的尝试提供足够的大小。在此程序中,每个条目都与屏幕一样宽,减去左右两侧的10个单位填充。
您可以通过不同文本长度的实验来估计足够的WidthRequest。本章的下一个程序将Entry宽度设置为等于1英寸的值。
EntryKeyboards程序使用通过隐式样式设置的CenterOndExpand的VerticalOptions值,垂直均匀地分隔七个Entry视图。显然,所有七个Entry视图都有足够的垂直空间,因此您可能会对在XAML文件中使用ScrollView感到困惑。
ScrollView专门针对iOS。如果您点击靠近Android或Windows 10 Mobile屏幕底部的条目,操作系统将在键盘弹出时自动向上移动页面内容,因此在您键入时仍可看到条目。但除非提供ScrollView,否则iOS不会这样做。
以下是在屏幕底部的一个Entry视图中键入文本时每个屏幕的外观:
2018_09_18_155129

阅读(31) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册