7

ポップアップ ウィンドウのようなアクティビティを作成したい

これは、アクティビティの背景が透明で、デバイス画面の右隅にある画面上のカスタム位置に表示したい

私がやったことはonCreate、活動のようなポップオーバーの中でした

Display display = getWindow().getWindowManager().getDefaultDisplay();
    WindowManager.LayoutParams params = getWindow().getAttributes();
    // params.x = -20;
    params.height = (display.getHeight()) / 2;
    params.width = (display.getWidth()) / 2;
    // params.y = -10;
    params.gravity =  Gravity.RIGHT;
    getWindow().setAttributes(params); 

最も大きな

 <activity android:name=".DialogAct"
           android:theme="@android:style/Theme.Holo.Light.NoActionBar"></activity>

これは私のランチャーアクティビティがどのように見えるかです

ここに画像の説明を入力

アクションバーの検索をクリックすると、新しいアクティビティにインテントが送信されます。検索アイコンのすぐ下にあるポップのように見せたいのですが、これは私が得たものです ここに画像の説明を入力

以前のアクティビティの検索がクリックされ、新しいアクティビティが読み込まれていることがわかります (青い部分)。ご覧のとおり、新しいアクティビティが画面の中央に移動します。しかし、アクションバーのアイコンのすぐ下に置きたいです。

私は試しparams.gravity = Gravity.TOP | Gravity.RIGHT;ました。それから私はこれを手に入れました

ここに画像の説明を入力

前のアクティビティのアクションバーのすぐ下に配置したい。私はそれを達成するために多くの方法を試みましたが失敗しました。誰でもメソッドを提案できますか

4

4 に答える 4

0

あなたが書いたあなたのマニフェストで

<activity android:name=".DialogAct"
           android:theme="@android:style/Theme.Holo.Light.NoActionBar">

NoActionBarその部分を削除する必要があります

<activity android:name=".DialogAct"
           android:theme="@android:style/Theme.Holo.Light">
于 2013-07-24T12:49:34.327 に答える
0

@edwinあなたができることは、作った後です

params.gravity = Gravity.TOP | Gravity.RIGHT;

次のように、上からマージンを提供するだけです。

  LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
  params.setMargins(left, top, right, bottom);
  yourCustomPopOveractivity.setLayoutParams(params);

これを行った後、必要なポジションを得ることができ、今行ったことはすべて正しいと思います。

試してから教えてください

于 2013-10-23T05:23:15.627 に答える
0

役に立ちそうなことが2つ考えられます。まず、 を に変更してみThemeてください。これmanifestによりandroid:theme="@android:style/Theme.Dialog、必要な外観が得られるはずです。

編集

でタイトルバーを非表示にできます

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

呼び出す前に必ず呼び出してくださいsetContentView()

また、別のものにする必要がない場合は、PopupWindowActivityを使用できます。これにより、isAboveAnchorを使用し、 をアンカーとして使用して下に配置するか、他の関連するメソッドのいずれかを使用できます。これらのいずれかが必要なものを満たすかどうかはわかりませんが、うまくいくかもしれません。ActionBar

于 2013-07-24T12:50:52.323 に答える