我希望在一段时间间隔3秒后隐藏TextView。我用Google搜索并找到了一些代码,我尝试了如下所示的代码,但它无法正常工作。
请告诉我这有什么问题?
tvRQPoint.setText("+0");
tvRQPoint.postDelayed(new Runnable() {
public void run() {
tvRQPoint.setText("+0");
}
}, 3000);
还有一件事,如何删除超时?当我在click
ListView
事件中使用此功能时,如果用户点击一个选项然后点击第二个选项,那么当3秒结束时(点击第一个选项后),它不会显示第二个选项3秒。
答案 0 :(得分:28)
尝试View INVISIBLE
或GONE
赞:
tvRQPoint.postDelayed(new Runnable() {
public void run() {
tvRQPoint.setVisibility(View.INVISIBLE);
}
}, 3000);
将View visibility
设为view.setVisibility(View.INVISIBLE|View.VISIBLE|View.GONE);
答案 1 :(得分:6)
如何用一些动画隐藏文本视图?
int delayMillis = 3000;
Handler handler = new Handler();
final View v = tvRQPoint; // your view
handler.postDelayed(new Runnable() {
@Override
public void run() {
TranslateAnimation animate = new TranslateAnimation(0,-view.getWidth(),0,0);
animate.setDuration(500);
animate.setFillAfter(true);
v.startAnimation(animate);
v.setVisibility(View.GONE);
}, delayMillis);
答案 2 :(得分:3)
您要做的是没有问题,但三秒后您想要隐藏textview
,请使用setVisibility
tvRQPoint.setText("+0");
tvRQPoint.postDelayed(new Runnable() {
public void run() {
tvRQPoint.setVisibility(View.INVISIBLE);
}
}, 3000);
答案 3 :(得分:1)
试试这个 -
Handler handler;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.start);
tvRQPoint.setText("+0");
handler = new Handler();
handler.postDelayed(csRunnable, 3000);
}
Runnable csRunnable =new Runnable()
{
@Override
public void run()
{
tvRQPoint.setVisibility(View.INVISIBLE);
}
};
答案 4 :(得分:1)
试试这个......
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView tv=(TextView)findViewById(R.id.tv);
tv.setText("+0");
tv.postDelayed(new Runnable() {
public void run() {
tv.setVisibility(View.INVISIBLE);
}
}, 3000);
}
}
答案 5 :(得分:1)
我只是将“视图”的动画从Alpha 1更改为0,即可见性从100%更改为0%。
scrollUp = findViewById(R.id.lottieAnimationView);
scrollUp.postDelayed(new Runnable() {
@Override
public void run() {
AlphaAnimation alphaAnimation = new AlphaAnimation(1,0);
alphaAnimation.setDuration(400);
scrollUp.startAnimation(alphaAnimation);
scrollUp.setVisibility(View.INVISIBLE);
}
},5000);
我正在使用LottieAnimationView,但其他视图也一样
只需替换R.id.{ID OF YOUR VIEW}
中的ID
alphaAnimation.setDuration(400);
这意味着动画将需要4秒钟才能完成,即,该数字越高,动画越慢。
},5000);
而“ 5000”表示延迟5秒。
对于延迟的每一秒,您将其设置为1000毫秒或毫秒的延迟。
1秒= 1000毫秒
希望它对某人有帮助,所有其他答案也都是正确的,这只是另一种解决方法。
答案 6 :(得分:0)
您正在run()方法中设置文本。你可以用两种方式隐藏文本
View.INVISIBLE
- 为textview提供空间并隐藏其内容
View.GONE
- 删除textview的空间并隐藏其内容
所以请致电
tvRQPoint.setVisibility(View.INVISIBLE);
(or)
tvRQPoint.setVisibility(View.GONE);
答案 7 :(得分:0)
希望它的工作:
tvRQPoint.setText("+0");
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
tvRQPoint.setVisibility(View.GONE);
}
},3000);