gpt4 book ai didi

android - 在android中自动隐藏媒体播放器布局

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:30:49 32 4
gpt4 key购买 nike

我正在设计一个具有自定义布局的媒体播放器。我希望界面在 16 秒不活动后消失。如果用户触摸屏幕,它应该重新出现。代码 fragment 如下:

 public void showhideControllers(int n) {
if (n == 1) {
/* make layout invisible */

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
volumeBar.setVisibility(View.INVISIBLE);
audioControllView.setVisibility(View.INVISIBLE);
topBar.setVisibility(View.INVISIBLE);
}
}, 16000);

} else {
/* make layout visible */
volumeBar.setVisibility(View.VISIBLE);
topBar.setVisibility(View.VISIBLE);
audioControllView.setVisibility(View.VISIBLE);

showhideControllers(1);
}

}

@Override
public void onUserInteraction() {
super.onUserInteraction();
showhideControllers(2);
}

在 onCreate() 中,我通过调用 showhideControllers(1); 来启动计时器。现在,当我在屏幕上单击时,布局重新出现并且计时器被重置。但是,如果我随机继续单击屏幕,则每次单击后计时器都不会重置,并且布局会在 16 秒后消失。你能告诉我我做错了什么吗?

最佳答案

抱歉回复晚了。但这是解决方案。我有类似的问题。因此,我对您的代码进行了以下更改,请尝试一下,如果对您有帮助,请告诉我。

private Runnable hideControllerThread = new Runnable() {

public void run() {
volumeBar.setVisibility(View.GONE);
audioControllView.setVisibility(View.GONE);
topBar.setVisibility(View.GONE);
}
};


public void hideControllers() {
hidehandler.postDelayed(hideControllerThread, 15000);
}

public void showControllers() {
volumeBar.setVisibility(View.VISIBLE);
topBar.setVisibility(View.VISIBLE);
audioControllView.setVisibility(View.VISIBLE);
hidehandler.removeCallbacks(hideControllerThread);
hideControllers();
}

@Override
public void onUserInteraction() {
super.onUserInteraction();

if (audioControllView.getVisibility() == View.VISIBLE) {
hidehandler.removeCallbacks(hideControllerThread);
hideControllers();
} else {
showControllers();
}
}

关于android - 在android中自动隐藏媒体播放器布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9241554/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com