我正在使用带有嵌套网格的网格来渲染表单。对于某些条目,我可以点击条目中的任何区域,它会弹出键盘。对于其他用户,我必须点击左侧以调出键盘,如图中黄色突出显示的条目所示。我尝试将网格放置为stacklayout的子代,将键盘类型更改为非数字,设置水平选项,设置宽度请求。唯一有效的方法是,将嵌套网格放置在其父级中而没有其他子级。不知道我在做什么错。我试图避免为整个网格设置点击手势识别器。
这是我的代码:
<Grid Padding="3,20,10,20" VerticalOptions="Start" HorizontalOptions="FillAndExpand">
<Grid.RowDefinitions>
<RowDefinition Height="50" />
<RowDefinition Height="50" />
<RowDefinition Height="50" />
<RowDefinition Height="50" />
<RowDefinition Height="50" />
<RowDefinition Height="50" />
<RowDefinition Height="50" />
<RowDefinition Height="50" />
<RowDefinition Height="50" />
<RowDefinition Height="50" />
<RowDefinition Height="50" />
<RowDefinition Height="50" />
<RowDefinition Height="50" />
<RowDefinition Height="50" />
<RowDefinition Height="50" />
<RowDefinition Height="50" />
<RowDefinition Height="50" />
</Grid.RowDefinitions>
<!-- purchase price-->
<Grid Grid.Row="0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width=".7*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" HorizontalTextAlignment="End" VerticalOptions="Center" TextColor="{ DynamicResource BaseTextColor }" FontSize="Small" Text="Purchase Price:" />
<Entry Grid.Column="1" Keyboard="Numeric" VerticalOptions="Center" x:Name="purchasePrice" Text="{Binding SalesPrice}" ></Entry>
</Grid>
</Grid>
<!--- address-->
<Grid Grid.Row="1">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width=".7*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" HorizontalTextAlignment="End" VerticalOptions="Center" TextColor="{ DynamicResource BaseTextColor }" FontSize="Small" Text="Address:" />
<Entry Grid.Column="1" VerticalOptions="Center" x:Name="address1" Text="{Binding Address}" ></Entry>
</Grid>
</Grid>
<!--- city-->
<Grid Grid.Row="2">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width=".7*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" HorizontalTextAlignment="End" VerticalOptions="Center" TextColor="{ DynamicResource BaseTextColor }" FontSize="Small" Text="City:" />
<!--<Picker Grid.Column="1" x:Name="cityPicker"></Picker>-->
<autocomplete:SfAutoComplete VerticalOptions="Center" Grid.Column="1" HeightRequest="40" x:Name="cityAutoComplete" />
</Grid>
</Grid>
<!-- county -->
<Grid Grid.Row="3">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width=".7*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Margin="0,0,0,0" VerticalOptions="Center" HorizontalTextAlignment="End" TextColor="{ DynamicResource BaseTextColor }" FontSize="Small" Text="County:" />
<Picker Grid.Column="1" VerticalOptions="Center" x:Name="countyPicker"></Picker>
</Grid>
</Grid>
<!-- loan -->
<Grid Grid.Row="4">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width=".7*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Margin="0,0,0,0" VerticalOptions="Center" HorizontalTextAlignment="End" TextColor="{ DynamicResource BaseTextColor }" FontSize="Small" Text="Loan:" />
<cb:Checkbox Grid.Column="1" Margin="0,0,0,0" x:Name="isLoanCheckbox" HeightRequest="30" WidthRequest="30" Checked="{Binding HasLoan}"
HorizontalOptions="Start" VerticalOptions="Center">
</cb:Checkbox>
</Grid>
</Grid>
<!--down payment -->
<Grid Grid.Row="5">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width=".7*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" HorizontalTextAlignment="End" VerticalOptions="Center" TextColor="{ DynamicResource BaseTextColor }" FontSize="Small" Text="Down Payment:" />
<Entry Grid.Column="1" Keyboard="Numeric" VerticalOptions="Center" x:Name="downPayment" Text="{Binding DownPayment}" ></Entry>
<Grid Grid.Column="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width=".7*"></ColumnDefinition>
<ColumnDefinition Width=".7*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<!--<Label TextColor="Gray" Margin="0,-10,0,0" Grid.Column="0"
VerticalTextAlignment="Center" HorizontalOptions="FillAndExpand"
HorizontalTextAlignment="Center" FontSize="Small"
Text="{ x:Static local:FontAwesomeFont.Dollar }">
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="Dollar_Tapped" />
</Label.GestureRecognizers>
<Label.FontFamily>
<OnPlatform x:TypeArguments="x:String" Android="fontawesome-webfont.ttf#FontAwesome" iOS="FontAwesome" />
</Label.FontFamily>
</Label>
<Label TextColor="Gray" Margin="0,-10,0,0" Grid.Column="1"
VerticalTextAlignment="Center"
HorizontalTextAlignment="Center" FontSize="Small"
Text="{ x:Static local:FontAwesomeFont.Percent }">
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="Percent_Tapped" />
</Label.GestureRecognizers>
<Label.FontFamily>
<OnPlatform x:TypeArguments="x:String" Android="fontawesome-webfont.ttf#FontAwesome" iOS="FontAwesome" />
</Label.FontFamily>
</Label>-->
</Grid>
</Grid>
</Grid>
<!--interest rate -->
<Grid Grid.Row="6">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width=".7*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" HorizontalTextAlignment="End" VerticalOptions="Center" Margin="0,0,0,0" TextColor="{ DynamicResource BaseTextColor }" FontSize="Small" Text="Interest Rate:" />
<Entry Grid.Column="1" Keyboard="Numeric" VerticalOptions="Center" x:Name="interestRate" Text="{Binding InterestRate}" ></Entry>
</Grid>
</Grid>
<!--term -->
<Grid Grid.Row="7">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width=".7*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" HorizontalTextAlignment="End" VerticalOptions="Center" Margin="0,0,0,0" TextColor="{ DynamicResource BaseTextColor }" FontSize="Small" Text="Term:" />
<Entry Keyboard="Numeric" Grid.Column="1" VerticalOptions="Center" x:Name="term" Text="{Binding Term}" ></Entry>
</Grid>
</Grid>
<!-- misc fees -->
<Grid Grid.Row="8">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width=".7*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" HorizontalTextAlignment="End" VerticalOptions="Center" Margin="0,0,0,0" TextColor="{ DynamicResource BaseTextColor }" FontSize="Small" Text="Misc Fees:" />
<Entry Grid.Column="1" Keyboard="Numeric" VerticalOptions="Center" x:Name="miscFees" Text="{Binding MiscFeesTotal}" ></Entry>
<Label TextColor="Gray" Grid.Column="2" Margin="0,-10,5,0"
VerticalTextAlignment="Center"
HorizontalTextAlignment="End" FontSize="Large"
Text="{ x:Static local:IonicIconsFont.GearA }">
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="MiscFees_Tapped" />
</Label.GestureRecognizers>
<Label.FontFamily>
<OnPlatform x:TypeArguments="x:String" Android="ionicons.ttf#ionicons" iOS="Ionicons" />
</Label.FontFamily>
</Label>
</Grid>
</Grid>
<!--closing credits -->
<Grid Grid.Row="9">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width=".7*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" HorizontalTextAlignment="End" VerticalOptions="Center" Margin="0,0,0,0" TextColor="{ DynamicResource BaseTextColor }" FontSize="Small" Text="Closing Credits:" />
<Entry Grid.Column="1" Keyboard="Numeric" VerticalOptions="Center" x:Name="closingCreditsTotalEntry" Text="{Binding ClosingCreditsTotal}" ></Entry>
<Label TextColor="Gray" Grid.Column="2" Margin="0,-10,5,0"
VerticalTextAlignment="Center"
HorizontalTextAlignment="End" FontSize="Large"
Text="{ x:Static local:IonicIconsFont.GearA }">
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="ColsingCredits_Tapped" />
</Label.GestureRecognizers>
<Label.FontFamily>
<OnPlatform x:TypeArguments="x:String" Android="ionicons.ttf#ionicons" iOS="Ionicons" />
</Label.FontFamily>
</Label>
</Grid>
</Grid>
<!--hazard -->
<Grid Grid.Row="10">
<Grid.RowDefinitions>
<RowDefinition Height="50" />
</Grid.RowDefinitions>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width=".7*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" HorizontalTextAlignment="End" VerticalOptions="Center" Margin="0,0,0,0" TextColor="{ DynamicResource BaseTextColor }" FontSize="Small" Text="Hazard Ins:" />
<Entry Grid.Row="0" Grid.Column="1" Keyboard="Numeric" VerticalOptions="Center" HorizontalOptions="FillAndExpand" x:Name="hazard" Text="{Binding HazardInsurance}" ></Entry>
</Grid>
</Grid>
<!--prpp tax -->
<Grid Grid.Row="11">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width=".7*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" HorizontalTextAlignment="End" VerticalOptions="Center" Margin="0,0,0,0" TextColor="{ DynamicResource BaseTextColor }" FontSize="Small" Text="Ann Prop. Tax:" />
<Entry Grid.Row="0" Keyboard="Numeric" Grid.Column="1" VerticalOptions="Center" x:Name="propTax" Text="{Binding AnnualPropertyTax}" ></Entry>
</Grid>
</Grid>
<!--tax proration-->
<Grid Grid.Row="12">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width=".7*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" HorizontalTextAlignment="End" VerticalOptions="Center" Margin="0,0,0,0" TextColor="{ DynamicResource BaseTextColor }" FontSize="Small" Text="Tax Proration:" />
<Entry Keyboard="Numeric" Grid.Column="1" VerticalOptions="Center" x:Name="taxProration" Text="{Binding TaxProration}" ></Entry>
</Grid>
</Grid>
<!--city trans tax (auto calc)-->
<Grid Grid.Row="13">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width=".7*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" HorizontalTextAlignment="End" VerticalOptions="Center" Margin="0,0,0,0" TextColor="{ DynamicResource BaseTextColor }" FontSize="Small" Text="City Tran Tax:" />
<Entry Keyboard="Numeric" Grid.Column="1" VerticalOptions="Center" x:Name="transTax" Text="{Binding CityTransferTax}" ></Entry>
</Grid>
</Grid>
<!--monthly hoa-->
<Grid Grid.Row="14">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width=".7*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" HorizontalTextAlignment="End" VerticalOptions="Center" Margin="0,0,0,0" TextColor="{ DynamicResource BaseTextColor }" FontSize="Small" Text="Monthly HOA:" />
<Entry Keyboard="Numeric" Grid.Column="1" VerticalOptions="Center" x:Name="hoa" Text="{Binding MonthlyHOA}" ></Entry>
</Grid>
</Grid>
<!--closing date-->
<Grid Grid.Row="15">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width=".7*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" HorizontalTextAlignment="End" VerticalOptions="Center" Margin="0,0,0,0" TextColor="{ DynamicResource BaseTextColor }" FontSize="Small" Text="Closing Date:" />
<DatePicker Grid.Column="1" VerticalOptions="Center" x:Name="ClosingDatePicker"></DatePicker>
</Grid>
</Grid>
<!--attorney-->
<Grid Grid.Row="16">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width=".7*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" HorizontalTextAlignment="End" VerticalOptions="Center" Margin="0,0,0,0" TextColor="{ DynamicResource BaseTextColor }" FontSize="Small" Text="Attorney:" />
<Picker Grid.Column="1" x:Name="attorneyPicker"></Picker>
</Grid>
</Grid>
</Grid>
答案 0 :(得分:1)
更新:
删除父AbsoluteLayout已解决该问题。
我以前遇到过这个问题,显然是因为您的布局选项未设置为扩展我为解决此问题所做的事情:
<Grid Grid.Row="0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width=".7*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" HorizontalTextAlignment="End" VerticalOptions="FillAndExpamd" TextColor="{ DynamicResource BaseTextColor }" FontSize="Small" Text="Purchase Price:" HorizontalOptions="FillAndExpamd" />
<Entry Grid.Column="1" Keyboard="Numeric" VerticalOptions="CenterAndExpand" x:Name="purchasePrice" Text="{Binding SalesPrice}" ></Entry>
</Grid>
</Grid>