Xamarin.forms Xamarin表单:日期选择器未在更改时调整全宽
我在Xamarin表单页面中添加了一个日期选择器。我面临的问题是在初始页面加载时,如果我选择的日期的文本长度大于之前选择的长度,则日期选择器在屏幕中占据的大小在更改日期时不会调整 例如,如果我最初选择的日期是2018年5月21日,如果我将日期更改为2018年11月21日,现在由于文本长度增加,屏幕上不会显示全文 请让我知道如何解决此问题 XAML:Xamarin.forms Xamarin表单:日期选择器未在更改时调整全宽,xamarin.forms,Xamarin.forms,我在Xamarin表单页面中添加了一个日期选择器。我面临的问题是在初始页面加载时,如果我选择的日期的文本长度大于之前选择的长度,则日期选择器在屏幕中占据的大小在更改日期时不会调整 例如,如果我最初选择的日期是2018年5月21日,如果我将日期更改为2018年11月21日,现在由于文本长度增加,屏幕上不会显示全文 请让我知道如何解决此问题 XAML: <StackLayout Style="{StaticResource layoutListItem}">
<StackLayout Style="{StaticResource layoutListItem}">
<Label Style="{StaticResource labelStandard}" Text="From" HorizontalOptions="Start" />
<DatePicker Date="{Binding FromDateFilter}" TextColor="#777777" VerticalOptions="CenterAndExpand"
HorizontalOptions="EndAndExpand" MaximumDate="{Binding ToDateFilter}">
<DatePicker.Format>dd-MMMM-yyyy</DatePicker.Format>
<DatePicker.Effects>
<effects:EntryNoBorderEffect />
</DatePicker.Effects>
</DatePicker>
</StackLayout>
年月日
初始负荷:(日期范围->起始日期:2017年5月29日)
变更日期:(日期范围->自:2017年11月29日)
把你的日期选择器放在这里面。
并向您的日期选择器或其他batter发出请求,以使用Grid代替StackLayout对于那些即使在Xamarin.Forms 5.0.0.2012版本上仍在等待修复的用户,这里有一个解决方法: 扩展
Xamarin.Forms.DatePicker
并在日期更改时调用InvalidateMeasure
:
public class FixedDatePicker : DatePicker
{
public FixedDatePicker()
{
DateSelected += FixedDatePicker_DateSelected;
}
private void FixedDatePicker_DateSelected(object sender, DateChangedEventArgs e)
{
InvalidateMeasure();
}
}
使用此扩展类,而不是XAML中的默认类
我希望Xamarin团队尽快修复此错误。您是否尝试在日期选择器中使用FillAndExpand来显示水平选项?我希望文本与右侧对齐。。。使用FillAndExpand,文本在更改时占据宽度。但是没有和右边对齐,有类似的问题并且使用网格。@J.J:你解决过这个问题吗?这个问题似乎仍然存在于Xamarin 5中…@BlueRaja DannyPflughoeft我不记得了,可能不记得了(我只是在试验Xamarin)。我现在没有安装android工具,但是我在Git上的最后一个版本的代码看起来像是
无法实现这一点,即使使用网格将文本向右对齐
public class FixedDatePicker : DatePicker
{
public FixedDatePicker()
{
DateSelected += FixedDatePicker_DateSelected;
}
private void FixedDatePicker_DateSelected(object sender, DateChangedEventArgs e)
{
InvalidateMeasure();
}
}