2013-07-24 13 views
7

私は、デバイスの画面の右上隅にある小石のカスタム位置にそれを表示したい活動のALSの背景が透明であるポップアップウィンドウAndroidの活動

のように見える活動を作成したいです私が何をしたか

はmaifest

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

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); 

のようなポップオーバーのonCreate中にありました

私はアクションバーで検索をクリックしたとき、これは私のランチャー活動が

enter image description here

どのように見えるので、私は私の新しい活動.Iに意図を送信していている、それはちょうど下のポップのように見えるようにしたいです検索アイコン私が得たものを これはあなたが前のアクティビティの検索をクリックすると新しい活動がロードされている(青い部分)を見ることができます enter image description here

です。 新しいアクティビティが画面の中央に移動します。しかし、私はアクションバーのアイコンのすぐ下にそれをしたい。

私はparams.gravity = Gravity.TOP | Gravity.RIGHT;を試しました。それから私は、私はちょうど前のアクティビティのアクションバーの下に置きたい、この

enter image description here

を得ました。私はそれを達成するために多くの方法を試しましたが失敗しました。そう、誰もがあなたがNoActionBar一部に

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

答えて

0

を提案することができ、私は助けるかもしれない二つのことを考えることができます。まず、manifestThemeandroid:theme="@android:style/Theme.Dialogに変更してみるといいでしょう。

あなたはちょうどそれが別々にする必要がない場合、またsetContentView()

を呼び出す前に、それを呼び出すようにしてください

this.requestWindowFeature(Window.FEATURE_NO_TITLE); 

とのタイトルバーを非表示にすることができます

編集ActivityPopupWindowを使用できます。これにより、isAboveAnchorを使用してActionBarをアンカーとして使用し、その下に配置するか、または他の関連する方法のいずれかを使用することができます。私はこれらのいずれかがあなたが必要とするものを果たすかどうかわからないが、彼らはあなたのために働くかもしれない。

+0

私の活動にタイトルバーが表示されるようにしてください。私は – edwin

+0

を表示したくないですが、あなたの質問ではアクションバーの下にしたいと言いますが、アクションバーを使用しないとアクションバーの下にあるかどうかをどのように検出できますか? –

+0

これは私の問題です。青いスクリーンショットは活動です。タイトルバー/アクションバーを外して、このアクティビティにナビゲートする前のアクティビティを確認してください。 – edwin

0

を削除する必要がありますが

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

を書いたマニフェストでMethodeの

+0

テーマを変更しようとしましたが、タイトルバーを表示するのには役立ちません。それは私の場合は避けるべきです。多くのフラグメントトランザクションが私の活動で起こっているので、私はポップオーバーのために行くことができません。だから私はそれを完全にコントロールする必要がある。 Thantの理由 – edwin

+0

タイトルバーが最初の解決策の唯一の問題である場合は、私の編集を参照してください。それはあなたがタイトルバーを隠すことができます – codeMagic

+0

私はそれを試みましたが、まだ私が必要なものを達成することができませんでした。編集内容を確認してください。 – edwin

-1

重力を右上ではなく中央に試してください。

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

と私はこれをやった後、あなたが必要な位置を得ることができると思う:あなたは何ができるか@edwin

+0

私はこれをスクリーンの右側に置いておきたいのです。中心を与えるならば、それは画面の中心に移動するでしょう – edwin

+0

あなたはそれが右上にしたいですか? –

+0

もしそうなら、paramsに一番上のマージンを与え、それがどのように反応するかを見てください。 –

0

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

を行った後、あなたはこのように、上からいくつかのマージンを提供していますあなたがやったことはすべて正しいです。

+0

あなたの努力のためのすべての最初のもの。私は、XMLでの小規模な回避策を通して質問を他の方法で投稿した後、これを解決するための解決策を見つけました。 – edwin

+0

@edwinすごいよ!あなたは答えを見つけました。だからここにあなたの解決策を提供してください私の答えが正しかったと便利な場合は、誰かが同じ問題に直面している場合は、ここで答えを見つけることができるように答えに投票してください。 :) –

関連する問題