Is it possible to add an activity on top of the current activity. For example lets say i click a button, and then it adds a second activity to the current activity. And the second activity only covers a small place at the buttom of my current activity.
3 に答える
アクティビティは単にウィンドウを表示しているだけなので、getWindow() を使用してウィンドウ パラメータを必要な値に変更できます。たとえば、親を埋める代わりにコンテンツをラップします。ただし、全画面表示にならないアクティビティの場合は、まずマニフェストで android:theme="@android:style/Theme.Dialog" を実行する必要があります。それ自体で、アクティビティがダイアログのように見えます (ダイアログ フレームと、画面の中央にコンテンツをラップします)。そこから、スタイルまたはレイアウト パラメータをさらに絞り込むことができます。
とはいえ、一度に 1 つのアクティビティしか実行できないように設計されていることを理解することが重要です。したがって、この新しいアクティビティを表示すると、現在のアクティビティは一時停止されます。(フルスクリーン以外のアクティビティの背後にまだ表示されているため、停止されません。) より統合されたものについては、基本アクティビティでダイアログを作成し、同じ方法で必要に応じてウィンドウを調整します。どちらを使用するかの決定は、どちらが設計に適しているかという問題にすぎませんが、ここではダイアログの方がはるかに一般的なアプローチだと思います。
全画面を占有しないアクティビティを持つ唯一の方法は、TabActivity でアクティビティをダイアログにすることです。他にもあるかもしれませんが。ただし、両方と対話できるかどうかはわかりません。
完璧な方法を見つけました。マニフェストでテーマを Theme.Dialog に変更し、startActivityForResult でアクティビティを呼び出します。このように、ルート アクティビティはまだそこにあり、新しいアクティビティがその上に表示され、透明性も良好です。