View 完成其工作后隐藏 View Xamarin
Hide View after View finishes its job Xamarin
我正在尝试在屏幕上显示五彩纸屑的新 Konfetti View,可在此处找到:
https://github.com/DanielMartinus/Konfetti
我希望这个视图在五彩纸屑停止掉落后消失,但是使用我目前的代码,五彩纸屑甚至在开始掉落之前就消失了。
五彩纸屑活动:
using System;
using Android.App;
using Android.Content;
using Android.Graphics;
using Android.OS;
using Android.Text;
using Android.Views;
using Android.Widget;
using NL.DionSegijn.Konfetti;
using NL.DionSegijn.Konfetti.Models;
namespace ConfettiTest
{
[Activity(Label = "ConfettiActivity")]
public class ConfettiActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.confetti_activity);
KonfettiView konfettiView = (KonfettiView)FindViewById(Resource.Id.viewKonfetti);
int num = 0;
while (num != 2)
{
if (num == 0)
{
konfettiView
.Build()
.AddColors(Color.Yellow, Color.Green, Color.Magenta)
.SetDirection(0.0, 359.0)
.SetSpeed(1f, 5f)
.SetFadeOutEnabled(true)
.SetTimeToLive(4000L)
.AddSizes(new Size(12, 5f))
.StreamFor(400, 4000L);
}
else if (num == 1)
{
konfettiView.Visibility = ViewStates.Gone;
}
else
{
}
num++;
}
}
}
}
confetti_activity.xml:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<nl.dionsegijn.konfetti.KonfettiView
android:id="@+id/viewKonfetti"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:text="Confetti is finished"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/confettifinished"
android:textSize="50px"/>
</LinearLayout>
这个答案: 不会起作用,因为在我的正确代码中,我有不止 1 个文本视图。
另一种方法是将 konfettiView 置于后台,这样您就可以同时看到 textView 和五彩纸屑,但我也不知道该怎么做。
您可以使用 定时器 只显示特定时间的视图。
可能看起来像这样:
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.confetti_activity);
KonfettiView konfettiView = (KonfettiView)FindViewById(Resource.Id.viewKonfetti);
konfettiView
.Build()
.AddColors(Color.Yellow, Color.Green, Color.Magenta)
.SetDirection(0.0, 359.0)
.SetSpeed(1f, 5f)
.SetFadeOutEnabled(true)
.SetTimeToLive(4000L)
.AddSizes(new Size(12, 5f))
.StreamFor(400, 4000L);
//Create and run a timer
Device.StartTimer (new TimeSpan (0, 0, 5000), () => //(5000 = 5sec)
{
Device.BeginInvokeOnMainThread (() =>
{
//Hide the konfetti
konfettiView.Visibility = ViewStates.Gone;
});
return false;
});
}
我正在尝试在屏幕上显示五彩纸屑的新 Konfetti View,可在此处找到: https://github.com/DanielMartinus/Konfetti
我希望这个视图在五彩纸屑停止掉落后消失,但是使用我目前的代码,五彩纸屑甚至在开始掉落之前就消失了。
五彩纸屑活动:
using System;
using Android.App;
using Android.Content;
using Android.Graphics;
using Android.OS;
using Android.Text;
using Android.Views;
using Android.Widget;
using NL.DionSegijn.Konfetti;
using NL.DionSegijn.Konfetti.Models;
namespace ConfettiTest
{
[Activity(Label = "ConfettiActivity")]
public class ConfettiActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.confetti_activity);
KonfettiView konfettiView = (KonfettiView)FindViewById(Resource.Id.viewKonfetti);
int num = 0;
while (num != 2)
{
if (num == 0)
{
konfettiView
.Build()
.AddColors(Color.Yellow, Color.Green, Color.Magenta)
.SetDirection(0.0, 359.0)
.SetSpeed(1f, 5f)
.SetFadeOutEnabled(true)
.SetTimeToLive(4000L)
.AddSizes(new Size(12, 5f))
.StreamFor(400, 4000L);
}
else if (num == 1)
{
konfettiView.Visibility = ViewStates.Gone;
}
else
{
}
num++;
}
}
}
}
confetti_activity.xml:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<nl.dionsegijn.konfetti.KonfettiView
android:id="@+id/viewKonfetti"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:text="Confetti is finished"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/confettifinished"
android:textSize="50px"/>
</LinearLayout>
这个答案: 不会起作用,因为在我的正确代码中,我有不止 1 个文本视图。
另一种方法是将 konfettiView 置于后台,这样您就可以同时看到 textView 和五彩纸屑,但我也不知道该怎么做。
您可以使用 定时器 只显示特定时间的视图。
可能看起来像这样:
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.confetti_activity);
KonfettiView konfettiView = (KonfettiView)FindViewById(Resource.Id.viewKonfetti);
konfettiView
.Build()
.AddColors(Color.Yellow, Color.Green, Color.Magenta)
.SetDirection(0.0, 359.0)
.SetSpeed(1f, 5f)
.SetFadeOutEnabled(true)
.SetTimeToLive(4000L)
.AddSizes(new Size(12, 5f))
.StreamFor(400, 4000L);
//Create and run a timer
Device.StartTimer (new TimeSpan (0, 0, 5000), () => //(5000 = 5sec)
{
Device.BeginInvokeOnMainThread (() =>
{
//Hide the konfetti
konfettiView.Visibility = ViewStates.Gone;
});
return false;
});
}