我的注册表格大致与此相似
<StackLayout>
<StackLayout
HorizontalOptions="FillAndExpand"
Padding="{x:Static local:Styles.LabelBeforeEntryPadding}">
<Label
Text="{Binding LabelPasswort2}"
HorizontalOptions="{x:Static local:Styles.LabelHorizontalOptions}"
TextColor="{x:Static local:Styles.RegistrationPageTextColor}" />
</StackLayout>
<custom:StrypeEntry
Text="{Binding Passwort2}"
IsPassword="true"
IsEnabled="{Binding ControlsEnabled}"
HorizontalOptions="FillAndExpand" />
</StackLayout>
<!--Newsletter-->
<StackLayout
Orientation="Horizontal"
HorizontalOptions="StartAndExpand">
<Switch
IsToggled="{Binding Newsletter}"
IsEnabled="{Binding ControlsEnabled}"
VerticalOptions="StartAndExpand"
HorizontalOptions="StartAndExpand" />
<Label
Text="{Binding LabelNewsletter}"
VerticalOptions="CenterAndExpand"
HorizontalOptions="Start"
TextColor="{x:Static local:Styles.RegistrationPageTextColor}" />
</StackLayout>
<!--Datenschutz-->
<StackLayout
Orientation="Horizontal"
HorizontalOptions="StartAndExpand">
<custom:StrypeSwitch
IsToggled="{Binding Privacy}"
IsEnabled="{Binding ControlsEnabled}"
VerticalOptions="StartAndExpand"
HorizontalOptions="StartAndExpand" />
<Label
Text="{Binding LabelPrivacy}"
VerticalOptions="CenterAndExpand"
HorizontalOptions="Start"
WidthRequest="300" TextColor="{x:Static local:Styles.RegistrationPageTextColor}" />
</StackLayout>
问题是,在显示表单时,开关不可见,只有在条目聚焦时它们才会显示。
StrypeEntry只是一个带有Border Corder的自定义条目和一个大写的道具,没有什么花哨的,对于切换我做了一个自定义渲染器来修复不显示的问题。
我已经尝试过对ButtonText Alignment的修复没有帮助(Xamarin.Forms: wrong button text alignment after click (Android))
我也试过这个
public override void ChildDrawableStateChanged(View child)
{
base.ChildDrawableStateChanged(child);
Control.Text = Control.Text;
Control.Checked = Control.Checked;
}
但仍未修复
(我在使用Android 4.4.2的GT-I9505上测试.Xamarin.Forms程序集的版本是1.2.2.0)
请帮帮我, 谢谢
答案 0 :(得分:8)
似乎我必须回答我自己的问题。
我通过在xaml中向Switch添加高度和宽度请求来修复此问题
希望这有助于其他人。 也许如果你找到更好的解决方案,请告诉我。
问候〜
答案 1 :(得分:0)
我发现将SelectedIndex设置为0(假设列表中有值)可以修复它。
答案 2 :(得分:-1)
是的我在Android 4.4及更低版本中也遇到了同样的问题,并且只有在添加高度和宽度后才能看到。但是棒棒糖在没有添加高度和宽度请求的情况下工作。