Invece di sottoclassi è possibile utilizzare la decorazione:
class WatchedView {
static class Listener {
void onVisibilityChanged(int visibility);
}
private View v;
private Listener listener;
WatchedView(View v) {
this.v = v;
}
void setListener(Listener l) {
this.listener = l;
}
public setVisibility(int visibility) {
v.setVisibility(visibility);
if(listener != null) {
listener.onVisibilityChanged(visibility);
}
}
}
Poi
WatchedView v = new WatchedView(findViewById(R.id.myview));
v.setListener(this);
fonte
2015-09-25 08:15:17
Non lo so per certo, ma direi che non c'è una cosa del genere, in quanto metterebbe un sacco di lavoro su tutto il sistema per tracciare in modo permanente la visibilità di tutti i punti di vista in ogni momento , al fine di notificare un possibile ascoltatore. – Ridcully