ho capito! Non sono sicuro se questo è il modo in cui i ragazzi nel tuo play store lo hanno fatto, ma questo è ciò che ha funzionato per me. Inoltre, mi rendo conto che questo post ha più di un anno, ma lo sto ancora rispondendo nel caso in cui qualcun altro lo scoprisse mentre cercava di creare una tastiera trasparente.
Il "qualcosa" sotto la tua vista non è in realtà nulla - è lo spazio vuoto. La tastiera ha spinto l'intera vista verso l'alto e verso l'esterno per fare spazio alla sua altezza, lasciando dietro di sé uno spazio vuoto vuoto. La tua tastiera trasparente lascia trasparire questo spazio bianco.
Ecco la soluzione: anziché restituire la vista in onCreateInputView, restituirla in onCreateCandidatesView. Questa è la vista che normalmente vive sopra la tastiera e elenca i suggerimenti di correzione automatica. Ma lo userai per ospitare la tua tastiera attuale.
Il motivo per cui si desidera che la tastiera sia una visualizzazione per candidati è perché la vista di input spinge più spesso la vista sottostante verso l'alto. Le singole app possono decidere come comportarsi quando viene visualizzata una tastiera tramite android: windowSoftInputMode e la vista di input rispetta le loro preferenze, ma la vista candidati usa sempre adjustPan.
Dalla documentazione: "Si noti che perché la vista candidato tende ad essere mostrato e nascosto un sacco, ma non influisce l'interfaccia utente dell'applicazione nello stesso modo come la vista di ingresso morbido: non potrà mai causare finestre delle applicazioni per ridimensionare, solo fare in modo che vengano spostati, se necessario, affinché l'utente possa vedere il focus corrente. " http://developer.android.com/reference/android/inputmethodservice/InputMethodService.html
Quindi, restituire la vista trasparente dalla onCreateCandidatesView, restituire null da onCreateInputView e assicurarsi di chiamare setCandidatesViewShown (vero) in modo da visualizzare i vostri candidati si presenta (io lo chiamo in onWindowShown).
fonte
2013-12-02 01:24:58
Lo hai mai capito? Sto cercando di fare la stessa cosa, e sto incontrando lo stesso problema. –