簡體   English   中英

Android:使View在定義的時間后消失的最佳方法

[英]Android: best way to make a View disappear after a defined amount of time

我想讓textView在一段確定的時間之后成功更改文本,然后消失。

我不確定最好的處理方法是什么。

使用Thread.sleep(2000); ,這顯然會使整個UI線程休眠。 使用Thread.sleep(2000); 內部AsyncTask似乎是錯誤的。 另外,如果用戶離開需要由AsyncTask更新的Activity,則將導致問題。

必須有一種更清潔的方法來實現這一目標。 如果您知道的話:請隨時回答:-)

您不需要創建處理程序:

view.postDelayed(new Runnable(){
  @Override
  public void run()
  {
    view.setVisibility(View.GONE);
  }
}, 10000);

您可以為此使用Runnable

Handler myHandler = new Handler();
Runnable myRunnable = new Runnable() {
    @Override
    public void run() {
        //Hide your view
    }
};

然后,在更改文本后,添加以下內容:

myHandler.postDelayed(myRunnable, TIME_IN_MILLISECONDS);

希望能幫助到你。

你可以做這樣的事情嗎?

在您的活動中,創建一個處理程序:

Handler handler = new Handler()
{
  @Override
  public void handleMessage (Message msg)
  {
    if (msg.what == HIDE_VIEW)
      hideView();  // defined elsewhere in your activitry
  }
}

然后在要啟動計時器的位置執行以下操作:

postDelayed (new Runnable()
{
  @Override
  public void run()
  {
    Message msg = handler.obtainMessage();
    msg.what = HIDE_VIEW;
    msg.obj = null;
    handler.sendMessage (msg);
  }
}, 10000);

不知道您是否需要此級別的異步性。

抱歉,您對問題的解釋不正確,

使用textView .setVisibility(View.INVISIBLE)

在處理程序內

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM