2013-07-24 13 views
7

desidero creare un'attività che sembro una finestra pop-upAttività Android con layout trasparente

cioè con sfondo trasparente per als attività voglio mostrare in posizione personalizzata su ghiaioni che si trova sulla destra della schermata del dispositivo

quello che ho fatto è stato all'interno onCreate del pop sopra come 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); 

in Maifest

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

Questo è ciò che la mia attività di lancio sembra

enter image description here

Così, quando clicco su cerca sulla barra delle azioni sto inviando intento alla mia nuova attività .Io voglio far sembrare pop appena sotto la Ricerca icona Questo quello che ho ottenuto è enter image description here

si può vedere la ricerca di attività precedente viene cliccato e nuova attività viene caricato (parte blu). Come puoi vedere la nuova attività si sposta al centro dello schermo. ma lo voglio proprio sotto l'icona della barra delle azioni.

ho provato params.gravity = Gravity.TOP | Gravity.RIGHT;. poi ho ottenuto questo

enter image description here

voglio posizionarlo appena sotto la barra delle azioni di attività precedente. Ho provato molti modi per ottenerlo, ma ho fallito. così chiunque può suggerire un Methode

risposta

0

Nel vostro manifesto hai scritto

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

si dovrebbe rimuovere la parte NoActionBar

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

se dare in modo che verrà visualizzata la barra del titolo nella mia attività. non voglio mostrare quello – edwin

+0

ma nella tua domanda dici di volerlo sotto la barra delle azioni, come puoi rilevare se è sotto la barra delle azioni se non usi una barra delle azioni? –

+0

beh, questo è il mio problema, il blu nella schermata è un'attività. con la barra del titolo/barra delle azioni e ciò che hai visto dietro è un'attività precedente che naviga verso questa attività. – edwin

0

Mi vengono in mente due cose che possono aiutare. Innanzitutto, potresti provare a cambiare il Theme nel tuo manifest a android:theme="@android:style/Theme.Dialog e questo dovrebbe darti l'aspetto desiderato.

Modifica

È possibile nascondere la barra del titolo con

this.requestWindowFeature(Window.FEATURE_NO_TITLE); 

basta assicurarsi di chiamare prima di chiamare setContentView()

Inoltre, se non ha bisogno di essere un separato Activity potresti usare PopupWindow. Con questo è possibile utilizzare isAboveAnchor e utilizzare l'ActionBar come ancoraggio e posizionarlo di seguito oppure utilizzare uno degli altri metodi associati. Non so se uno di questi soddisferà ciò di cui hai bisogno ma potrebbero funzionare per te.

+0

provo a cambiare il mio tema ma non aiuta a far apparire la barra del titolo. ciò dovrebbe essere evitato nel mio caso. Non posso andare per il popover poiché ci sono molte transazioni frammentarie che stanno per accadere nella mia attività. quindi ho bisogno di un controllo completo su di esso. È per questo che ho seguito questo approccio – edwin

+0

Se la barra del titolo è il tuo unico problema con la prima soluzione, vedi la mia modifica. Ciò ti permetterà di nascondere la barra del titolo – codeMagic

+0

. L'ho provato. Ma non sono ancora riuscito a ottenere ciò che mi serviva. può controllare la modifica. – edwin

-1

Prova la gravità al centro anziché in alto a destra ..

+0

voglio che questa sia nella parte destra dello schermo, ecco perché la do. Se si concentra si sposterà al centro dello schermo – edwin

+0

lo vuoi in alto a destra ?? –

+0

se sì quindi dare il margine superiore ai parametri e vedere come reagisce ?? –

0

@edwin Che cosa si può fare è dopo aver effettuato

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

si limita a fornire un certo margine dall'alto, come questo:

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

e credo che dopo aver fatto questo è possibile ottenere la posizione desiderata e tutto ciò che hai appena fatto è giusto.

Si prega di provare quindi dirmi

+0

PRIMA DI TUTTI, GRAZIE PER IL TUO SFORZO. INFATTI, HO RAGGIUNTO UNA SOLUZIONE PER QUESTO DOPO L'INVIO DELLA DOMANDA IN UN ALTRO MODO ATTRAVERSO UN PICCOLO WORKAROUND IN XML. – edwin

+0

@edwin Oh fantastico! hai trovato la risposta. Quindi, per favore, fornisci qui la tua soluzione e se anche la mia risposta è giusta e utile, vota per la risposta o fai accettare la risposta in modo che se qualcuno si trova di fronte allo stesso problema può trovare la risposta qui. :) –

Problemi correlati