Ho un SearchView
in un'attività; quando l'utente esegue la ricerca, un Fragment
contenente i risultati della ricerca si aggiunge alla stessa attività.Android SearchView OnFocusChangeListener: onFocusChange non è chiamato affatto
Ora quello che voglio è che quando il SearchView
si fa clic (così diventa la messa a fuoco, e l'utente digita lì), i Fragment
già visualizzati (contente il risultati di ricerca) dovrebbe diventare dim/offuscata.
così ho cercato di impostare un OnFocusChangedListener
per la SearchView
nel metodo di callback del ciclo di vita del onActivityCreated
Fragment
, ma non sembra di essere chiamato a tutti.
final Activity myActivity = getActivity();
Log.i(TAG, "myActivity>"+myActivity.toString());//check
SearchView mySearchView = (SearchView) myActivity.findViewById(R.id.searchActivity_searchView);
Log.i(TAG, "mySearchView>"+mySearchView.toString());//check
mySearchView.setOnFocusChangeListener(new OnFocusChangeListener() {
@SuppressLint("NewApi")
@Override
public void onFocusChange(View v, boolean hasFocus) {
Log.i(TAG, "onFocusChange OF OnFocusChangeListener IN SearchResultsFragment CALLED.");
if (hasFocus) {
myActivity.getWindow().setDimAmount(1.0f);
}
}
});
Quindi mi manca qualcosa? Cosa devo fare per ottenere il onFocusChanged
chiamato quando l'utente fa clic e quindi attiva lo SearchView
per digitare la query di ricerca in esso?
Nota: Se è necessario un intero codice SSCCE, si prega di chiedere nei commenti, lo posterò.
Perché non provarlo con setOnClickListener()? – MohanRaj
@MohanRaj Ho appena provato che, anche questo non viene chiamato = ( – Solace
Puoi provare direttamente questo nell'attività che contiene la tua vista di ricerca, invece di ottenere il riferimento all'interno del frammento? – MohanRaj