渋谷で働くシステム屋さん -2ページ目

web2pyで気をつけること: 汎用ビューもローカル制限

すばらしきかなweb2py.

ローカル環境をデプロイしたら、ビューを用意していないgeneric.htmlの代用がされない。

generic.htmlはリクエスト変数をまんま出力して以上、な汎用ページ。
ビューがないときにこちらのレイアウトで出力される。

なんてオートメーション!すばらしいとおもったところ、リモートにデプロイしたら
ビューがないページは
「invalid view error」
となる。

これはセキュリティのためローカル環境でしか働かないらしい。
こんなところに落とし穴が!

ということで、同じくしたい場合には

response.generic_patterns = ['*']
if request.is_local else [] ←ここがローカル限定にしてるぽい


response.generic_patterns = ['*']
←すべてのパターンを受け付ける

とする。でたらめにたたかれたらまずいものが出る、というリスクがありそうな場合は
ビューを必ず用意すればいいのですけど。

とにかくコードレス(!)にしたいのになー




Android : 画面の回転対応


画面の回転の時になにがおこっているのか。

デフォルトの状態だと、onStop → onDestory → onCreate
とアクティビティが完全に再起動している。

それだと、初期化してしまって困る。
なので、再起動をやめてもらって、回転時に呼ばれる onConfigurationChanged() に回転の時だけしたい処理を書くと表示中の情報を保ったまま回転に対応した動きができる。

AndroidManifest.xmlにandroid:configChanges="orientation"を追加すると、onDestoryやonCreateがよばれない。

android:label="@string/app_name"
     android:configChanges="orientation"
>


回転のときにしたいことは

onConfigurationChanged()

に記述する。

android キーボードのおまじない

あたりまえのようでいて、すんごく、わかりにくいIMEのハナシ。

キーボードが画面にかぶっちゃって、

入力が見えない、

そんなとき、先にしとかないといけないことがあります。

入力部品には

android:layout_weight="1"


Amdroid Manifest のActivity の定義で

android:windowSoftInputMode="stateVisible|adjustResize"


という属性をおまじないのようにつける。

どっちか抜けちゃうんだな。
で、なんでだろーなんでだろーってなっちゃう。

気をつけるためにメモメモ。