亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

淡入淡出動畫播放兩次

淡入淡出動畫播放兩次

C#
瀟瀟雨雨 2021-03-29 11:15:51
每當用戶在上鍵入內容時,我都將啟用按鈕的可見性(從GONE到VISIBLE),并設置其alpha值的動畫EditText。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"/>
查看完整描述

2 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

試試這些:


private void ShowSendButton()

{

    if (sendbtn.Visibility != ViewStates.Visible)

    {

        sendbtn.ClearAnimation();

        sendbtn.Animate().Alpha(1.0f).SetDuration(200).WithStartAction(new Runnable(() => {

            sendbtn.Visibility = ViewStates.Visible;

        })).Start();

    }

}


private void HideSendButton()

{

    if (sendbtn.Visibility != ViewStates.Gone)

    {

        sendbtn.ClearAnimation();

        sendbtn.Animate().Alpha(0.0f).SetDuration(200).WithEndAction(new Runnable(() =>

        {

            sendbtn.Visibility = ViewStates.Gone;

        })).Start();

    }

}

在設備上進行了測試,效果似乎不錯。


希望能幫助到你。-


查看完整回答
反對 回復 2021-04-10
?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

似乎通過將我的ShowSendButton代碼更改為部分固定


private void ShowSendButton()

    {

        if (sendbtn.Visibility != ViewStates.Visible)

        {

            sendbtn.Visibility = ViewStates.Visible;

            sendbtn.ClearAnimation();

            Animation fadeIn = new AlphaAnimation(0, 1);

            fadeIn.Duration = 50;

            sendbtn.Animation = fadeIn;


        }


    }

工作正常,但我似乎無法更改動畫的持續時間(fadeIn.Duration = 50不起作用)。無論我將其設置為什么值,它始終會以約0.2s的速度播放。


查看完整回答
反對 回復 2021-04-10
  • 2 回答
  • 0 關注
  • 210 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號