Titanium 3.3.0では,従来の方法ではAndroidのナビゲーションバーを非表示にすることができなくなっています.この記事では3.3.0でAndroidのナビゲーションバーを非表示にする方法を記述します.
#Titanium 3.3.0以前の方法
3.3.0以前ではtiapp.xmlのAndroidマニフェストに以下のコードの記述や
<navbar-hidden>true</navbar-hidden>
非表示にするwindowに対してnavBarHidden="true"を設定することでナビゲーションバーを非表示にできましたが,3.3.0ではこれらを設定してもタイトルバーがしれっと存在してます.
#Titanium 3.3.0での非表示の方法
方法としては2つあります.1つは,アプリが起動した時にJS側でwin.activity.actionBar.hide();を呼び出す方法です.
もう一つは,Androidのナビゲーションバー非表示のカスタムテンプレートを作成して読み込ませる方法です.
##1.JavaScript側で非表示にする方法
ウィンドウが生成されたときに,hideメソッドを呼んで非表示にする方法です.以下のようにapp.js(Alloyであれはコントローラに)actionBarインスタンスのhideメソッドを呼ぶことによってウィンドウが開かれた時にときにアクションバーを非表示にさせます.
win.addEventListener('open', function(){
win.activity.actionBar.hide();
});
##2.Androidカスタムテンプレートを作成して非表示にする方法
以下の様な階層でディレクトリを作成し,任意の名前(以下だとcustom_theme)をつけてxmlファイルを作成します.
cd プロジェクトフォルダ
mkdir -p platform/android/res/values
vim platform/android/res/values/custom_theme.xml
custom_theme.xmlは以下のように記述します.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.NoActionBar" parent="@style/Theme.Titanium">
<item name="windowActionBar">false</item>
</style>
</resources>
上で作成したカスタムテーマを読み込むためにtiapp.xmlを修正します.applicationタグで上で作成したカスタムテーマを読み込んでいます.
<android xmlns:android="http://schemas.android.com/apk/res/android">
<manifest>
<application android:theme="@style/Theme.NoActionBar"/>
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19"/>
</manifest>
</android>