首页 > 解决方案 > Java 如何显示然后隐藏 (GONE) 视图-Android

问题描述

我正在 Android Studio 中开发一个应用程序(因为我不是 Java 专业人士,只是学习......)我不确定我的代码是否无法正常工作——这对我来说似乎不是。任何人都可以伸出援助之手吗?

我有一个音乐文件,当它播放时我不会显示进度条 - 然后用可见性隐藏它(GONE)。一切正常,除了我不能让可见性改变 if (!mediaPlayer.isPlaying)...

基本上在 10 秒的音频播放后,进度条需要将视图改回消失。

   final ProgressBar Pbar;
   Pbar = (ProgressBar) findViewById(R.id.progressBar);

   final MediaPlayer mediaPlayer = MediaPlayer.create(this, 
   R.raw.soundttt);
    Button playsound = (Button) this.findViewById(R.id.play_sound_ten);
    playsound.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {
            mediaPlayer.start();
            if (mediaPlayer.isPlaying()) {
                Pbar.setVisibility(View.VISIBLE);
            }
            else if (!mediaPlayer.isPlaying()){
                Pbar.setVisibility(View.GONE);
            }
        }

    });

我已经尝试了三天,完成了我相当一部分的阅读,包括 MediaPlayer 上的众多线程。

StackOverFlow 1 任何帮助将不胜感激!先感谢您!

标签: javaandroidvisibility

解决方案


else if (!mediaPlayer.isPlaying()){
    Pbar.setVisibility(View.GONE);
}

上面的代码将在媒体播放器开始播放后立即执行。此条件为假,因此视图的可见性不受影响。

如果您不想在 10 秒后切换可见性,请使用 Handler 进行如下操作:

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

推荐阅读