本机代码(在 android 上隐藏导航栏)编译良好但在代号一中不起作用
Native code (hide navigation bar on android) which compiles well but doesn't work in Codename One
我需要在 Codename One 中实现一个本机代码来隐藏应用程序导航栏(应用程序下方的栏有后退和主页按钮)。我尝试在代号一中使用本机界面来做到这一点。我的代码编译得很好,但是当我在设备上执行时,什么也没有发生。这是我的本机实现代码:
public class NavigationBarImpl {
public void masquerNavigationBar() {
// com.codename1.impl.android.AndroidNativeUtil.getActivity().runOnUiThread(new Runnable() {
// public void run() {
android.view.View decorView=com.codename1.impl.android.AndroidNativeUtil.getActivity().getWindow().getDecorView();
int uiOptions=android.view.View.SYSTEM_UI_FLAG_HIDE_NAVIGATION|android.view.View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
// }
// });
}
public boolean isSupported() {
return false;
}
}
在我的主 class 中,我这样调用函数:
Button b=new Button("Masquer Navigation Bar");
b.addActionListener(evt->{
NavigationBar nBar=(NavigationBar)NativeLookup.create(NavigationBar.class);
if(nBar==null) {
throw new RuntimeException("Cette fonctionnalité n'est pas ENCORE supportée sur cette plateforme");
}
if(!nBar.isSupported() ){
throw new RuntimeException("Cette fonctionnalité n'est pas supportée sur cette plateforme");
}
nBar.masquerNavigationBar();
});
首先,我尝试将代码放在本机 EDT 中。它不起作用。如果不把它放在本机 EDT 中,它也不起作用。我没有错误,它编译得很好。我究竟做错了什么?谢谢!
如果不调试就很难判断,而且您没有在创建本机界面的地方包含代码,但这看起来像是一个错误:
public boolean isSupported() {
return false;
}
应该return正确。
我需要在 Codename One 中实现一个本机代码来隐藏应用程序导航栏(应用程序下方的栏有后退和主页按钮)。我尝试在代号一中使用本机界面来做到这一点。我的代码编译得很好,但是当我在设备上执行时,什么也没有发生。这是我的本机实现代码:
public class NavigationBarImpl {
public void masquerNavigationBar() {
// com.codename1.impl.android.AndroidNativeUtil.getActivity().runOnUiThread(new Runnable() {
// public void run() {
android.view.View decorView=com.codename1.impl.android.AndroidNativeUtil.getActivity().getWindow().getDecorView();
int uiOptions=android.view.View.SYSTEM_UI_FLAG_HIDE_NAVIGATION|android.view.View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
// }
// });
}
public boolean isSupported() {
return false;
}
}
在我的主 class 中,我这样调用函数:
Button b=new Button("Masquer Navigation Bar");
b.addActionListener(evt->{
NavigationBar nBar=(NavigationBar)NativeLookup.create(NavigationBar.class);
if(nBar==null) {
throw new RuntimeException("Cette fonctionnalité n'est pas ENCORE supportée sur cette plateforme");
}
if(!nBar.isSupported() ){
throw new RuntimeException("Cette fonctionnalité n'est pas supportée sur cette plateforme");
}
nBar.masquerNavigationBar();
});
首先,我尝试将代码放在本机 EDT 中。它不起作用。如果不把它放在本机 EDT 中,它也不起作用。我没有错误,它编译得很好。我究竟做错了什么?谢谢!
如果不调试就很难判断,而且您没有在创建本机界面的地方包含代码,但这看起来像是一个错误:
public boolean isSupported() {
return false;
}
应该return正确。