【发布时间】:2017-10-11 20:04:48
【问题描述】:
这是我的 FloatingActionButton:
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab_add_retailer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
android:tint="@android:color/white"
app:backgroundTint="@color/colorPrimary"
app:srcCompat="@drawable/ic_add_black_24dp"
local:MvxBind="Visibility IsAddButtonVisible, Converter=Visibility" />
它的可见性属性通过 MvvmCross 绑定到 IsAddButtonVisible:
private bool _isAddButtonVisible = true;
public bool IsAddButtonVisible
{
get
{
return _isAddButtonVisible;
}
set
{
_isAddButtonVisible = value;
RaisePropertyChanged(() => IsAddButtonVisible);
}
}
当我改变布尔值时
ViewModel.IsAddButtonVisible = false;
...什么也没发生。我在这里做错了什么?提前致谢!
编辑:当我使用 Visible 绑定时,切换有效
local:MvxBind="Visible IsAddButtonVisible"
但现在我在 FloatingActionButton 上看不到任何隐藏/显示动画...
【问题讨论】:
-
您的输出中是否有任何内容“无法为绑定可见性创建目标绑定...”?你的链接器设置是什么?看到您使用的是 bool 类型,您宁愿使用
VisibleMvx 自定义绑定选项local:MvxBind="Visible IsAddButtonVisible"。 -
@Plac3Hold3r 谢谢!我在输出中什么也看不到,至少在我通常看到绑定错误的地方看不到。哦,当我使用 local:MvxBind="Visible IsAddButtonVisible" 时,切换工作:) 但我没有在按钮上看到通常的动画。它只是出现和消失。如果我手动调用 hide() 和 show() 我可以看到动画,所以我认为我已经正确设置了按钮。知道如何获得这些动画吗?
-
有趣的是,
Visible绑定没有问题,但Visibility绑定中断时没有错误。出于好奇,您在构建时的链接器设置是什么? -
@Plac3Hold3r 你是说我的 LinkerPleaseInclude 文件吗?我只是注意到我里面有东西,这是我实验的剩余物......
public void Include(FloatingActionButton floatingActionButton) { floatingActionButton.Visibility = floatingActionButton.Visibility; }这显然行不通...... -
这是你的cs proj中的一个设置。您可以在“属性”>“Android 选项”>“链接器(选项卡)”中看到它,然后在“链接”下拉列表中看到它。
标签: android xamarin data-binding xamarin.android mvvmcross