我正在使用调用
的PhoneGap构建应用getWindow().requestFeature(Window.FEATURE_NO_TITLE);
在父级onCreate(DroidGap)中。但是,我想重新添加标题,以便我可以使用ActionBar。有没有任何标志/方法可以重置此功能?如果最坏的情况发生,我可以修改整个DroidGap类,但仍希望使用它们的版本。
如果它有助于任何人看到DroidGap在其onCreate中的作用,请点击以下链接:https://github.com/phonegap/phonegap-android/blob/master/framework/src/com/phonegap/DroidGap.java
ActionBar代码:
super.onCreate(savedInstanceState);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.main);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR); super.init();
ActionBar bar = getActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); // here NPE is thrown
bar.addTab(bar.newTab().setText("Some Text").setTabListener(new CustomTabListener()));
答案 0 :(得分:4)
Phonegap / Cordova 1.9版添加了一个标志来切换此功能:
if(!this.getBooleanProperty("showTitle", false))
{
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
}
启用窗口标题的onCreate方法示例:
@Override
public void onCreate(Bundle savedInstanceState) {
// enable window title for actionbar support
super.setBooleanProperty("showTitle", true);
super.onCreate(savedInstanceState);
}
答案 1 :(得分:2)
您是否测试了FEATURE_CUSTOM_TITLE
?
getWindow().requestFeature(Window.FEATURE_CUSTOM_TITLE);
getWindow().setTitle(getResources().getString(R.string.app_name));
或尝试使用标题栏加载主题:
setTheme(android.R.style.choose some of the themes listed or create your own);
答案 2 :(得分:1)
所以,我最终无法在不修改原始代码的情况下解决这个问题。我最终做的是将DroidGap类复制到我自己的类中(在帖子中链接的源代码)并注释掉以下行:
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
然后,我用我修改过的DroidGap版本扩展了我的正常活动,而不是PhoneGap的版本。
然后,在我的活动onCreate中,我有类似的东西:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
ActionBar bar = getActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
bar.addTab(bar.newTab().setText("Home").setTabListener(new CustomTabListener()));
bar.addTab(bar.newTab().setText("Something").setTabListener(new CustomTabListener()));
loadUrl("file:///android_asset/www/index.html");
}
如果没有requestFeature,您将从null
获得getActionBar()
。
希望它可以帮助别人!
答案 3 :(得分:0)
检查Android清单。我发现phonegap会生成一个Android清单,指定android:theme =“@ android:style / Theme.Black.NoTitleBar”。更改此主题允许我从代码控制标题显示。