que - programacion android pdf 2018
Encuentra la ventana que contiene una vista en Android (1)
No puedo encontrar una forma de obtener una referencia de la Window
contiene una View
arbitraria v. Encontré getWindowToken , pero no puedo encontrar la forma de usarlo. ¿Alguien sabe cómo?
Además, ¿alguien sabe por qué devuelve un IBinder
lugar de una Window
?
Bueno ... ya que todas las vistas tienen una referencia de la actividad que las creó ( Context
), puede usar ese Context
para obtener una referencia de la ventana. Déjame mostrarte este ejemplo que escribí hace unos minutos:
// main activity
import android.app.Activity;
import android.os.Bundle;
public class GetWindow extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyView view = new MyView(this);
view.changeSomethingInWindow(); // keep an eye on this method
setContentView(view);
}
}
Luego, dentro de su vista puede hacer esto:
// your view :D
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
public class MyView extends View{
public MyView(Context context) {
super(context);
}
public void changeSomethingInWindow(){
// get a reference of the activity
Activity parent = (Activity)getContext();
// using the activity, get Window reference
Window window = parent.getWindow();
// using the reference of the window, do whatever you want :D
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
}
En este caso, cambio el modo en que la ventana se muestra a pantalla completa. Espero que esto te ayude Dime si te metes en problemas con esto.