【发布时间】:2018-09-19 05:47:47
【问题描述】:
我启用按钮的可见性(从GONE 到VISIBLE),并在用户键入EditText 时为其 alpha 值设置动画:
private void ShowSendButton()
{
if (sendbtn.Visibility != ViewStates.Visible)
{
sendbtn.Visibility = ViewStates.Visible;
sendbtn.Animate().Alpha(1.0f);
}
}
只要EditText 为空,按钮就会淡出,其可见性设置为GONE,如下所示:
private void HideSendButton()
{
if (sendbtn.Visibility != ViewStates.Gone)
{
sendbtn.Animate().Alpha(0.0f).SetDuration(150).Start();
sendbtn.Visibility = ViewStates.Gone;
}
}
ShowSendButton 动画总是播放两次,即在动画结束后,按钮的 alpha 值重置回 0.0 并再次播放淡入淡出动画。
HideSendButton 动画中不会发生这种情况。
这是触发动画的代码:
editText.TextChanged += (s, e) =>
{
if (e.AfterCount != 0)
{
ShowSendButton();
}
else
{
HideSendButton();
}
};
这是按钮 XML:
<Button
android:id="@+id/sendbtn"
android:layout_width="40dp"
android:layout_height="40dp
android:textColor="#fff"
android:visibility="gone"
android:alpha="0"/>
【问题讨论】:
-
您是否尝试过先制作动画然后制作可见?在 ShowSendButton 中?
-
将 alpha 置于可见性之上,然后设置为可见。
-
@Greg 遗憾的是,这没有用。按钮立即出现,大约 0.2 秒后动画播放一次。
-
@Greg 我使用的是 xamarin.android,而不是 WPF。
-
@NicodeOry 抱歉,误读了您的标签。
标签: c# android xamarin.android