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), () =&gt; //(5000 = 5sec)
    {
       Device.BeginInvokeOnMainThread (() =&gt; 
       {
          //Hide the konfetti
          konfettiView.Visibility = ViewStates.Gone;
       });
       return false;
    });          
}