2011年6月6日月曜日

@AndroidManifest.xml ファイル

構文:
<activity android:allowTaskReparenting=["true" | "false"]
android:alwaysRetainTaskState=["true" | "false"]
android:clearTaskOnLaunch=["true"" | "false"]
android:configChanges=[以下のひとつ以上: "mcc" "mnc" "locale"
"touchscreen" "keyboard" "keyboardHidden"
"navigation" "orientation" "fontScale"]
android:enabled=["true" | "false"]
android:excludeFromRecents=["true" | "false"]
android:exported=["true" | "false"]
android:finishOnTaskLaunch=["true" | "false"]
android:icon="drawableリソース"
android:label="文字列リソース"
android:launchMode=["multiple" | "singleTop" |
"singleTask" | "singleInstance"]
android:multiprocess=["true" | "false"]
android:name="文字列"
android:noHistory=["true" | "false"]
android:permission="文字列"
android:process="文字列"
android:screenOrientation=["unspecified" | "user" | "behind" |
"landscape" | "portrait" |
"sensor" | "nonsensor"]
android:stateNotNeeded=["true" | "false"]
android:taskAffinity="文字列"
android:theme="リソース または テーマ"
android:windowSoftInputMode=[以下のひとつ以上: "stateUnspecified"
"stateUnchanged" "stateHidden"
"stateAlwaysHidden" "stateVisible"
"stateAlwaysVisible" "adjustUnspecified"
"adjustResize" "adjustPan"] >
. . .
</activity>
親の要素:
<application>
子にできる要素:
<intent-filter>
<meta-data>
説明:
アプリケーションの可視的なユーザインターフェイスを担う部分の実装をしたアクティビティ ( Activity のサブクラス ) を宣言します。すべてのアクティビティは、マニフェストファイルで <activity> 要素で表現されている必要があります。そこに宣言されていないものはシステムで見ることはできず、実行もされません。
属性:
android:allowTaskReparenting
アクティビティが、それを開始したタスクから、アクティビティに対して親和性を持つタスクへと、次にそのタスクが前面に現れるタイミングで移動可能かどうかの指定です。"true" は移動可能で、"false" は、それを開始したタスクに留まる必要がある場合の指定です。
この属性が設定されていない場合、それに相当する <application> 要素の allowTaskReparenting 属性により設定された値がアクティビティの割り当てられます。 デフォルト値は "false" です。

通常、アクティビティが開始したときは、アクティビティは、それを開始したタスクに関連付けられ、その生存期間中はずっとそこに留まります。この属性は、現在のタスクがもう表示の必要がなくなったとき、それと親和性のあるタスクへと強制的に親を再構成する目的で使用することができます。一般的に、アプリケーションのアクティビティを、そのアプリケーションと関連するメインのタスクに移すように仕向けるために、これが使用されます。

例えば、e-mail メッセージがウェブページへのリンクを含んでいる場合、そのリンクをクリックすることにより、そのページを表示するアクティビティが立ち上がります。そのアクティビティにはブラウザアプリケーションが定義されていますが、e-mail のタスクの一部として起動されています。ブラウザのタスクが親として再構成されたとすると、ブラウザが次に前面にきたときにそれが表示され、再度 e-mail タスクが前面にきたときそれが消滅します。

taskAffinity 属性によりアクティビティの親和性が定義されます。タスクの親和性はそのルートのアクティビティの親和性を読み込んで決定されます。したがって、当然、ルートのアクティビティは同じ親和性を持つタスクに常に存在します。"singleTask" または"singleInstance" の起動モードのアクティビティは、ルートタスクにおいてのみ存在できることから、親の再構成は "standard" と "singleTop" モードに制限されます ( launchMode 属性も参照してください ) 。

android:alwaysRetainTaskState
アクティビティが存在するタスクの状態が、常にシステムに保持されるかどうかの指定です。"true" は保持され、"false" は、ある一定の状況において、システムがタスクを初期の状態にリセットすることを許可します。デフォルト値は "false" です。これはタスクのルートのアクティビティに対してのみ意味のある属性です。つまり、それ以外ののアクティビティでは無視されます。
通常、システムは、ユーザがホームスクリーンからそのタスクを再度選択したときに、ある一定の状況において、システムがタスクをクリア ( ルートのアクティビティの上に積まれたスタックからすべてのアクティビティを削除して ) します。一般的に、30 分といった一定の期間にユーザがタスクにアクセスしなかったような場合に行われます。

しかしながら、この属性が "true" のときは、ユーザがどのようにしてそのタスクにアクセスしたかに関わらず、その最後の状態に戻ります。これは、失いたくない状態がたくさんある ( 複数のタブを開いてるような ) 、例えばブラウザのようなアプリケーションで便利です。

android:clearTaskOnLaunch
ホームスクリーンから再起動されるときはいつでも、ルートのアクティビティを除くすべてのアクティビティがタスクから除去するかどうかの指定です。 "true" はすべて除去し、そのルートアクティビティのみにし、"false" はそのようにしません。デフォルト値は "false" です。この属性は新たなタスクを開始するアクティビティ ( ルートのアクティビティ ) に対してのみ意味があります。つまりタスクのそれ以外のアクティビティでは無視されます。
この値が "true" のとき、ユーザがタスクを再度開始したときは、ユーザがタスクで最後に行ったことや、最後にそこから離れるために BACK や HOME を使用したかどうかには関わらず、毎回そのルートのアクティビティに連れ戻されます。この値が "false" のときは、なんらかの状況でアクティビティのタスクはクリアされます ( alwaysRetainTaskState 属性を参照してください ) が、それは常に行われるわけではありません。

例えば、だれかがアクティビティ P をホームスクリーンから起動し、そこからアクティビティ Q へと遷移したとします。ユーザが次に HOME を押し、アクティビティ P に戻ります。通常ユーザは、P のタスクで最後に何をしていても、アクティビティ Q は見えるでしょう。しかしながら、P がこのフラグを "true" に設定していた場合、ユーザが HOME を押しタスクがバックグラウンドになったときに、すべての先頭にあるアクティビティ ( このケースでは Q ) が除去されます。よって、タスクでの実行中にユーザが見えるのは P のみとなります。

この属性と allowTaskReparenting が共に "true" の場合、親の再構成が可能なアクティビティはどれでも同じ親和性を共有しているタスクへと移動します。つまり、残ったアクティビティはその後、上で説明したように、すべて捨てられます。

android:configChanges
アクティビティ自身がハンドリングする設定の変更を列挙します。列挙していない変更が発生した場合、アクティビティは停止後に再起動され、アクティビティは実行を維持し、その onConfigurationChanged() メソッドが呼び出されます。
以下の文字列のどれか、またはすべてをこの属性に設定することができます。値は、例えば、 "locale|navigation|orientation" のように '|' で分割されます。

値 説明
"mcc" IMSI モバイルの国コード (MCC) が変更された。つまり、SIM が検出され、MCC が更新された。
"mnc" IMSI モバイルのネットワークコード (MNC) が変更された。つまり、SIM が検出され、MNC が更新された。
"locale" ロケールが変更された。例えば、ユーザが表示されるべきテキストの新たな言語を選択した。
"touchscreen" タッチスクリーンが変更された ( これは通常発生しない ) 。
"keyboard" キーボードが変更された。例えば、ユーザが外部キーボードを差し込んだ場合。
"keyboardHidden" キーボードのアクセシビリティが変更された。例えば、ユーザがキーボードを外に引き出した。
"navigation" ナビゲーションタイプが変更された ( これは通常発生しない ) 。
"orientation" オリエンテーションが変更された。つまり、ユーザがデバイスを回転させた。
"fontScale" フォントスケールの倍率が変更された。つまり、ユーザが新たなグローバルフォントサイズを選択した。
これらすべての設定が変更されることにより、アプリケーションで見せているリソースの値に影響を与えることができます。したがって、 onConfigurationChanged() が呼び出されたとき、その変更を適切にハンドリングするためにすべてのリソース ( ビューレイアウト、drawable、その他 ) を再度取得し直すことが通常は必要となってきます。

android:enabled
システムによりアクティビティをインスタンス化できるかどうかの指定です。"true" は可能で、"false" は不可です。デフォルト値は "true" です。
<application> 要素自体には enabled 属性があり、アクティビティを含む、すべてのアプリケーションコンポーネントに適用されます。<application> と <activity> の属性はアクティビティを有効にするために、共に "true" ( 共にデフォルトとして ) にする必要があります。どちらかが "false" の場合は無効、すなわちインスタンス化はできなくなります。

android:excludeFromRecents
ユーザに対し表示可能なアクティビティの最近起動されたリストから、このアクティビティを除外すべきかどうかの指定です。"true" は除外すべきで、 "false" は含めるべきという指定です。デフォルト値は "false" です。

android:exported
アプリケーションのコンポーネントがアクティビティを起動できるかどうかの指定です。"true" は可能、"false" は不可です。"false" の場合、同じアプリケーションのコンポーネントによってのみまたは同じユーザ ID を持つアプリケーションによってのみアクティビティを起動することができます。
デフォルト値はアクティビティがインテントフィルタを含んでいるかどうかに依存します。フィルタが存在しないということは、明確なクラス名を特定することによってのみアクティビティが呼び出されるということを意味します。これは、アクティビティが内部的に使用するアプリケーションのみを対象としていることを意味します(外部はその名前を知ることがないのという理由から) 。このケースでは、デフォルト値は "false" となります。 その一方で、ひとつでもファイルがあるものは、このアクティビティが外部からでも使用されるアプリケーションを対象としているということを意味しています。よってデフォルト値は "true" となります。

アクティビティを他のアプリケーションに公開することを制限する方法としては、この属性の設定以外にもあります。アクティビティの呼び出しが可能な外部エンティティを制限するために許可を使用することもできます ( permission 属性参照) 。

android:finishOnTaskLaunch
存在するアクティビティのインスタンスが、ユーザが再度そのタスクを起動する ( ホームスクリーンのタスクを選択する ) たびに、停止 ( 終了 ) されるべきかどうかの設定です。"true" は停止され、"false" は停止されません。デフォルト値は "false" です。
この属性と allowTaskReparenting が共に "true" の場合、この属性の方がもう一方に勝ります。アクティビティの親和性は無視されます。アクティビティは親の再構成が行われず、破棄されます。

android:icon
アクティビティを表現するアイコンです。アクティビティをユーザに表示する必要があるときに、スクリーン上に表示されるアイコンです。例えば、ランチャーウィンドウに表示される初期化アクティビティに対するアイコンがあります。アイコンは大抵ラベルを伴っています ( label 属性参照 ) 。
この属性はイメージ定義を含めた drawable リソースに対する参照を設定する必要があります。これが設定されていない場合は、アプリケーション全体に設定されたアイコンを代わりに使用します ( <application> 要素の icon 属性参照 ) 。

アクティビティのアイコンは、ここでセットするか <application> 要素で行うかですが、すべてのアクティビティのインテントフィルタに対するデフォルトアイコンもあります ( <intent-filter> 要素の icon 属性参照 ) 。

android:label
ユーザが読めるアクティビティのラベルです。アクティビティをユーザに表示する必要があるときに、スクリーン上に表示されるラベルです。これは大抵アイコンと共に表示されます。
この属性が設定されていない場合は、アプリケーション全体に設定されたラベルを代わりに使用します ( <application> 要素の label 属性参照 ) 。

アクティビティのラベルは、ここでセットするか <application> 要素で行うかですが、すべてのアクティビティのインテントフィルタに対するデフォルトアイコンもあります ( <intent-filter> 要素の label 属性参照 ) 。

このラベルは文字列リソースへの参照を設定すべきで、そうすることでユーザインターフェイスでの他の文字列と同じようにローカライズが可能となります。しかしながら、便宜上、アプリケーション開発中は文字列の即値を直接設定するこもとできます。

android:launchMode
アクティビティの起動方法を指示します。それには 4 つのモードがあり、 アクティビティがインテントをハンドリングするよう求められたときに何を発生させるかを決定する目的で、 Intent オブジェクトにおけるアクティビティフラグ ( FLAG_ACTIVITY_* 定数 ) と共に機能します。それらは以下です。
"standard"
"singleTop"
"singleTask"
"singleInstance"

デフォルトのモードは "standard" です。

モードは 2 つのグループに分類され、一方は "standard" と "singleTop" のアクティビティ、もう一方は "singleTask" と "singleInstance" のアクティビティです。"standard" または "singleTop" のアクティビティ起動モードは、何回もインスタンス化が可能です。インスタンスはどのタスクにも所属でき、アクティビティスタックのどこにでも位置することができます。通常、これらは startActivity() を呼び出したタスク内で起動されます ( インテントオブジェクトが FLAG_ACTIVITY_NEW_TASK 指示を含んでいない場合で、そのケースでは異なるタスクが選択されています。 taskAffinity 属性を参照してください) 。

対照的に、"singleTask" と "singleInstance" アクティビティは、ひとつのタスクのみしか開始できません。それらは常にアクティビティスタックのルートに置かれます。さらに、デバイスはアクティビティのインスタンスを一度にひとつしか、要するにタスクにひとつしか保持できません。

"standard" と "singleTop" モードは、お互い 1 点だけの違いがあります。"standard" のアクティビティに対する新たなインテントがあれば常に、そのインテントに応答するためにアクティビティの新たなインスタンスを作成します。それぞれにインスタンスは単一のインテントをハンドリングします。同様に、"singleTop" の新たなアクティビティはもまたひとつの新たなインテントをハンドリングするかもしれません。しかしながら、ターゲットのタスクが既存のアクティビティのインスタンスを現時点でスタックの先頭に持っている場合は、このインスタンスが新たなインテントを受信する ( onNewIntent() 呼び出しにおいて ) ようになります。つまり、新たなインスタンスは作成されません。他の状況において、例えば、ターゲットのタスクに "singleTop" アクティビティのインスタンスが存在し、スタックの先頭にないまたはターゲットタスクにない場合は、新たなインスタンスが作成されスタックの先頭に格納されます。

"singleTask" と "singleInstance" モードも同様に、お互いに 1 点だけの違いがあります。"singleTask" アクティビティは他のアクティビティがそのタスクの一部となることを許可します。これはアクティビティスタックのルートに置かれますが、他のアクティビティ ( "standard" と "singleTop" アクティビティは必然的に ) は同じタスク内で起動されます。一方、"singleInstance" アクティビティは、他のアクティビティがそのタスクの一部とすることを許可しません。これはタスクでの唯一のアクティビティです。もしこれが別のアクティビティを開始した場合、このアクティビティは、まるでインテントで FLAG_ACTIVITY_NEW_TASK が指定されているかのように、別のタスクに割り当てられます。

起動モードおよびインテントフラグでの相互作用についてのより詳しい情報は、開発の基礎 ドキュメントの アクティビティとタスク セクションを参照してください。

android:multiprocess
アクティビティのインスタンスが、それを起動したコンポーネントのプロセス内で実行できるかどうかの指定です。"true" は実行可能、"false" は不可です。デフォルト値は "false" です。
通常、アクティビティはそれが定義されているアプリケーションのプロセスで新たにインスタンス化され、アクティビティのすべてのインスタンスが同じプロセス内で実行されます。しかしながら、このフラグが "true" に設定されている場合、 アクティビティのインスタンスはマルチプロセスで実行可能となり、システムはそれが使用されるたびにインスタンスを作成することが許され ( 許可により許可されているという条件で ) ますが、これはほとんどの場合は必要がなく望ましいものではありません。

android:name
Activity のサブクラスであるアクティビティ実装のクラスの名前です。これは完全修飾のクラス名 ( "com.example.project.ExtracurricularActivity" のような) でなければなりません。しかしながら、名前の最初の 1 文字をピリオドに ( 例、".ExtracurricularActivity" ) することにより、 <manifest> 要素で特定したパッケージ名に付加され、簡略化することができます。
デフォルトはありません。この名前は特定されなければなりません。

android:noHistory
ユーザがそこから離れるようなナビゲーションを行い、もはやスクリーンでは見えなくなったとき、アクティビティがアクティビティスタックから取り除かれ終了する ( そのメソッドが呼びだされる ) かどうかの指定です。"true" は終了すべきで、"false" そうすべきでない指定です。デフォルト値は "false" です。
"true" の値は、アクティビティがヒストリトレースを残さないという意味です。タスクでのアクティビティスタックにはそれが残っていないことにより、その後はユーザはそのアクティビティに戻ることはできなくなります。

この属性は API レベル 3 で導入されました。

android:permission
クライアントがアクティビティを起動するために必要とする許可、または、インテントに応答するために取得する許可の名前です。 startActivity() または startActivityForResult() の呼び出し元が特定の許可を付与されていない場合は、そのインテントはアクティビティに配信されません。
この属性が設定されていない場合、 <application> 要素の permission 属性で設定された許可がアクティビティに適用されます。どちらの属性も設定されていない場合は、このアクティビティは許可により保護されません。

許可に関するより詳しい情報は、前書きの 許可 セクションおよび、別のドキュメントの セキュリティと許可 を参照してください。

android:process
アクティビティが実行されているべきプロセスの名前です。通常は、アプリケーションのすべてのコンポーネントは、アプリケーションに対して作成されたデフォルトのプロセスで実行されます。これはアプリケーションのパッケージと同じ名前を持っています。<application> 要素の process 属性により、すべてのコンポーネントに対し、異なるデフォルト値を設定することができます。しかし、各コンポーネントは自身にある process 属性でデフォルトを上書きすることができ、マルチプロセスの間で、アプリケーションとの分離をはかることができるようになります。
この属性にコロン (':') で始まる名前を割り当てる場合は、新たなプロセスが、アプリケーションでプライベートで、それが必要となったときに作成され、アクティビティが実行されます。プロセス名が小文字で始まる場合は、グローバルなプロセスの名前でアクティビティが、その許可が与えられているという条件の下で、実行されます。グローバルプロセスが他のアプリケーションと共有可能となり、利用するリソースを節約につながります。

android:screenOrientation
アクティビティがデバイスに表示されるオリエンテーションの指定です。指定可能な値は以下の中のひとつです。

"unspecified" デフォルト値。システムがオリエンテーションを選択します。使用するポリシーは、個別の状況により選択され、デバイスによって異なる可能性があります。
"landscape" ランドスケープオリエンテーション ( 横長で表示 ) 。
"portrait" ポートレートオリエンテーション ( 縦長で表示 ) 。
"user" ユーザが現在推奨しているオリエンテーション。
"behind" アクティビティスタックにあるすぐ下のアクティビティと同じオリエンテーション。
"sensor" 物理オリエンテーションセンサにより決定されるオリエンテーション。表示のオリエンテーションはユーザのデバイスの持ち方に依存します。ユーザがデバイスを回すとオリエンテーションが変化します。
"nosensor" 物理オリエンテーションセンサを参照をせず決定されるオリエンテーション。センサは無視され、ユーザによるデバイスの動かし方を基に表示の回転は行いません。この特徴以外は、システムは "unspecified" の設定と同じポリシーを使用してオリエンテーションを選択します。

android:stateNotNeeded
アクティビティがその状態を保存せずに、破棄され、無事に再起動されることが可能かどうかの指定です。"true" は前の状態を参照せずに再起動され、 "false" は前の状態を必要とする指定です。デフォルト値は "false" です。
通常は、アクティビティがリソースを保存する目的で一時的に停止しますが、その前にアクティビティの onSaveInstanceState() メソッドが呼び出されます。このメソッドは Bundle オブジェクトとしてアクティビティの現在の状態を保存し、その後、アクティビティが再起動したときにそのオブジェクトを onCreate() に渡します。この属性が "true" の場合、 onSaveInstanceState() 呼び出されなくなる可能性があり、onCreate() には、Bundle の代わりに null が渡されます。これはちょうどアクティビティが初めて起動されたときと同じです。

"true" に設定することにより、アクティビティは回復させた状態なしでも再起動可能であることが保証されます。例えば、ホームスクリーンを表示するアクティビティは、なんらかの理由でクラッシュしてもそのアクティビティが削除されてしまわないことを確実に行うように、この設定を使用します。

android:taskAffinity
アクティビティが持つ親和性の対象となるタスクです。同じ親和性を持つアクティビティは、概念として同じタスク ( ユーザの視点から、同じ "アプリケーション" に ) に属します。タスクの親和性はそのルートのアクティビティにより決定されます。
親和性は 2 つのことを決定します。アクティビティが親の再構成の対象としているタスク ( allowTaskReparenting 属性を参照 ) と、FLAG_ACTIVITY_NEW_TASK フラグでアクティビティを起動したときにそのアクティビティに住みかを与えるタスクです。

デフォルトでは、アプリケーションのすべてのアクティビティは同じ親和性を持っています。この属性を異なる設定にしてグループ化することができ、また、同じタスク内の異なるアプリケーションで定義されたアプリケーションにアクティビティを配置することもできます。いずれのタスクにも親和性を持たないアクティビティを特定するには、ここに空の文字列を設定します。

この属性が設定されていない場合、アクティビティはアプリケーションに設定されている親和性を継承します ( <application> 要素の taskAffinity 属性を参照 ) 。アプリケーションに対するデフォルトの親和性の名前は、 <manifest> 要素により設定されているパッケージ名です。

android:theme
アクティビティに対する全体のテーマを定義するスタイルに対する参照を指定します。これによりこのテーマが使用するアクティビティのコンテキストに自動的に設定されます ( setTheme() を参照してください。"開始中" アニメーションをアクティビティが起動される前に、実際のアクティビティの状況をよりふさわしい表示にすることもあるかもしれません ) 。
この属性が設定されていない場合は、アクティビティはアプリケーション全体に設定されたテーマを継承します。<application> 要素の theme 属性を参照してください。その属性も設定されていなければ、デフォルトのシステムテーマが使用されます。

android:windowSoftInputMode
アクティビティのメインウィンドウとスクリーンにソフトウェアキーボードを含んだウィンドウとの相互作用する方法を指定します。この属性を設定することにより、以下の 2 つのことが影響を受けます。
アクティビティがユーザの操作により、フォーカスされたときのソフトウェアキーボードの状態。つまり、それが現れているか隠れているかの状態。
ソフトウェアキーボードによってウィンドウの一部が隠れてしまったときの、アクティビティのメインウィンドウに合わせる調整 。つまり、ソフトウェアキーボードのために場所を空け、アクティビティを小さくリサイズするか、それとも、現在フォーカスされているものを見えるようにするために、そのコンテンツを方向転換させるかどうかの調整。
設定する値は、以下のテーブルに列挙されている値のうちどれかひとつか、または "state..." のうちひとつの値と "adjust..." のうちひとつの値の結合を指定する必要があります。どちらかのグループを複数、例えば"state..." を複数回指定した場合、指定していないことになってしまいます。個々の値は垂直バー (|)で分割されます。 例えば、以下のようになります。

<activity android:windowSoftInputMode="stateVisible|adjustResize" . . . >
ここに設定された値は ( "stateUnspecified" および "adjustUnspecified" を除き ) 、テーマで設定された値を上書きします。

値 説明
"stateUnspecified" ソフトウェアキーボード (現れているか隠れているかどうか) の状態を特定しません。システムは適切な状態を選択するか、テーマせの設定に委ねます。
これはソフトウェアキーボードの振る舞いのデフォルトの設定です。

"stateUnchanged" アクティビティが前面にきたときに、ソフトウェアキーボードが最後の状態、現れているか隠れているかどうかの状態を保持します。
"stateHidden" ユーザがアクティビティを選択したときに、つまり、別のアクティビティから離脱してこのアクティビティに戻ってきたときではなく、ユーザが積極的にアクティビティに向かってナビゲートしたときに、ソフトウェアキーボードが隠れます。
"stateAlwaysHidden" アクティビティのメインウィンドウに入力のフォーカス時に、ソフトウェアキーボードが常に隠れます。
"stateVisible" 正常に適正なとき( ユーザがアクティビティのメインウィンドウにに向かってナビゲートしたとき ) ソフトウェアキーボードが現れます。
"stateAlwaysVisible" ユーザがアクティビティを選択したときに、つまり、別のアクティビティから離脱してこのアクティビティに戻ってきたときではなく、ユーザが積極的にアクティビティに向かってナビゲートしたときに、ソフトウェアキーボードを現します。
"adjustUnspecified" これはアクティビティのメインウィンドウがソフトウェアキーボードのために場所を空けるどうか、または現在フォーカスされているものをスクリーン上で見えるようにするためにウィンドウのコンテンツを方向転換させるかどうかの指定を行いません。システムは自動的にこれらのモードのひとつを選択しますが、それは、そのコンテントがスクロール可能なビューのレイアウトを持っているウィンドウのコンテントかどうかにより変わってきます。そのようなビューがある場合は、スクロールがあれば、小さい領域でもウィンドウのすべてのコンテントを見えるという仮定のもとで、このウィンドウがリサイズされます。
これはメインウィンドウの振る舞いのデフォルトの設定です。

"adjustResize" アクティビティのメインウィンドウはソフトェアキーボードが収まるよう常にリサイズされます。
"adjustPan" ソフトウェアキーボードに場所を空けるためにリサイズしないアクティビティのメインウィンドウです。場所を空けるのではなく、ウィンドウのコンテンツは自動的に方向転換し、それにより現在フォーカスされているものがキーボードで邪魔されず、ユーザは常にタイプする部分を見ることができるようになります。これは、ユーザがウィンドウの隠れた部分にアクセスし、相互作用をするのに、ソフトウェアキーボードを閉じる必要がある可能性があることから、一般に、リサイズするよりは好ましい方法ではありません。
この属性は API レベル 3 で導入されました。

0 件のコメント:

コメントを投稿