यह मेरा समाधान है:
सबसे पहले, बूलियन को परिभाषित करें जो इंगित करता है कि नेविगेशन बार दिखाई दे रहा है या नहीं।
boolean navigationBarVisibility = true //because it's visible when activity is created
दूसरा तरीका है जो नेविगेशन बार को छिपाता है।
private void setNavigationBarVisibility(boolean visibility){
if(visibility){
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
navigationBarVisibility = false;
}
else
navigationBarVisibility = true;
}
डिफ़ॉल्ट रूप से, यदि आप नेविगेशन बार को छिपाने के बाद गतिविधि पर क्लिक करते हैं, तो नेविगेशन बार दिखाई देगा। इसलिए हमें यह मिल गया है कि अगर यह दिखाई देगा तो हम इसे छिपा देंगे।
अब OnClickListener को अपने विचार पर सेट करें। मैं अपने लिए एक सतह का उपयोग करता हूं:
playerSurface.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setNavigationBarVisibility(navigationBarVisibility);
}
});
गतिविधि शुरू होने पर हमें इस विधि को कॉल करना होगा। क्योंकि हम शुरुआत में इसे छिपाना चाहते हैं।
setNavigationBarVisibility(navigationBarVisibility);