[英]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.