|
|||||
WebViewで画面回転時にActivityのリスタートを抑止する通常、AndroidのActivityのメカニズムでは、画面の回転が発生するとそれまでの事は全部忘れてリスタート(onCreateメソッドが呼ばれる)してしまう。これはこれで良いのだが、WebViewを使ってWebページを閲覧しているとき等はそれでは都合の悪い場合もある。 そのような場合、AndroidManifest.xmlで該当Activityにandroid:configChanges="orientation|screenSize"を追加することで、Webページの状態を保ったままタテ・ヨコの切り替えが可能となる。尚、今回はWebViewを題材としているが、この仕組みはActivityが持つメカニズムであり必ずしもWebViewに限ったことではない。
<activity
android:name="com.example.webviewconfigchange.MainActivity"
android:label="@string/app_name"
android:configChanges="orientation|screenSize" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
android:configChangesを設定すると、画面回転時にはonCreateメソッドでなくonConfigurationChangedメソッドが呼ばれる。回転の向きはnewConfig.orientationで取得できる。
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
if(newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
Log.d(TAG, "onConfigurationChanged! PORTRAIT");
} else {
Log.d(TAG, "onConfigurationChanged! LANDSCAPE");
}
}
(2013/12/07)
Copyright(C) 2004-2013 モバイル開発系(K) All rights reserved.
[Home]
|
|||||