Найти окно, содержащее представление в Android - PullRequest
27 голосов
/ 07 мая 2010

Я не могу найти способ получить ссылку на Window, содержащую произвольное View v. Я нашел getWindowToken , но не могу понять, как его использовать? Кто-нибудь знает как?

Кроме того, кто-нибудь знает, почему он возвращает IBinder, а не Window?

1 Ответ

18 голосов
/ 12 мая 2010

Ну ... так как все представления имеют ссылку на деятельность, которая их создала (Context), вы можете использовать эту Context, чтобы получить ссылку на окно.Позвольте мне показать вам этот пример, который я написал несколько минут назад:

// 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);
    }
}

Затем, внутри вашего представления, вы можете сделать это:

// 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);
    }
}

В этом случае я меняю режим окнаотображается в полноэкранном режиме.Надеюсь, это поможет вам.Скажи мне, если у тебя с этим проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...