Titaniumでアプリ開発をする際にネックとなるところとしては、
iPhoneの場合とAndroidの場合で見た目が変わってしまう部分があるところ。
特にtabGroupがAndroidの場合では上部に表示がされ、デザイン的にもなんだかなってなってしまう。
そこで今回はそのなんだかなを解消するための方法。
Android開発をしたことがあるならばわかるけれども、
基本的なパーツの配置というのはxmlで制御が可能。
Titaniumもその機能をカバーしてるのでそれを使ってあげればよいだけ。
■手順
1:(projectフォルダ)/platform/android/res/layout/というフォルダを作成。
2:(projectフォルダ)/build/android/res/layout/titanium_tabgroup.xmlを1のlayoutフォルダに入れる。
3:titanium_tabgroup.xmlを開く。
変更前:
<?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="0dp"> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="0dp" /> </LinearLayout> </TabHost>4:以下に変更
<?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="0dp"> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="0dp" android:layout_weight="1" /> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0" /> </LinearLayout> </TabHost>という手順で見事下側にtabが来ている。
※注意点
FrameLayoutとTabWidgetの記述順序を変更しないといけないというのが要注意。
というかそもそも日本語でこれに書いているものはほとんどないけれども、
書いてあってもFrameLayoutにandroid:layout_weight="1"と設定すればよいとしか書いてなかった。
たまたま自分のソースではTabWidgetが前に来ていただけかもしれないが、
こういう細かいところも出来たら書いてあったらいいのになって思った。
0 件のコメント:
コメントを投稿