2016-11-30 39 views
0

我想采取RelativeLayout.XConstraint与一些平台的具体价值。而且我想用OnPlatform关键字在xaml中执行此操作。 我想这一个没有运气,如何在XAML中制作平台特定的RelativeLayout.XConstraint?

<RelativeLayout> 
    <RelativeLayout.XConstraint> 
     <OnPlatform x:TypeArguments="Constraint" Android="{ConstraintExpression Type=Constant,Constant=6" iOS="{ConstraintExpression Type=Constant,Constant=3}" /> 
    </RelativeLayout.XConstraint> 
</RelativeLayout> 

而且也试过这一个https://forums.xamarin.com/discussion/57281/how-can-i-make-platform-specific-relativelayout-xconstraint-in-xaml却是露出“为指定包含一个无法解决的循环约束”的例外。

在这里什么是x:TypeArgumentsRelativeLayout.XConstraint或任何其他方法?期待有关这方面的任何提示/建议。

回答

2

您正在将约束应用于RelativeLayout本身,但是约束意味着应用于布局的项目,就像这样。

<RelativeLayout> 
    <Label Text="Foo"> 
    <RelativeLayout.XConstraint> 
     <OnPlatform x:TypeArguments="Constraint" Android="{ConstraintExpression Type=Constant,Constant=6}" iOS="{ConstraintExpression Type=Constant,Constant=3}" /> 
    </RelativeLayout.XConstraint> 
    </Label> 
</RelativeLayout> 

而且,你错过了第一ConstraintExpression标记右大括号(})。

我测试了这个,它在XamlC关闭的情况下工作得很好。 如果您正在运行XF 2.3.3,您可能会遇到https://bugzilla.xamarin.com/show_bug.cgi?id=48242,但存在修复(https://github.com/xamarin/Xamarin.Forms/pull/580),并将作为即将发布的服务版本的一部分发布。

+0

Stephane Delcroix我试过这个,但没有运气。对于XConstraint/YConstraint而言,不会反映常量值[如果YConstraint标签已移至屏幕顶部]我使用的是xamarin表单版本2.3.2.127。有关此问题的更多更新? – Suchith

+0

但在xamal预览器中显示正常。 – Suchith

+0

使用XF 2.3.3的最新服务版本进行测试 –

相关问题