Android, получите DecorView ребенка - PullRequest
3 голосов
/ 23 октября 2009

Интересно, можно ли получить оформление ребенка. Например, если у меня есть объект decorView, и я знаю, что дочерним элементом decorView является FrameLayout, есть ли у меня возможность получить объект FrameLayout, просто используя его родительский элемент?

Очевидно, я мог бы использовать getViewById () традиционным способом, но если я хочу использовать только родительский объект, возможно ли получить объект FrameLayout?

Спасибо

1 Ответ

1 голос
/ 23 октября 2009

Вы говорите о наследовании объектов?

Если это так, тогда все просто: разыграйте.

Предполагая, что у вас есть класс "Foo", который является классом-предком "Bar" (другими словами: Bar является "потомком" Foo), тогда возьмите этот пример:

Foo myFoo = getSomeFoo();
Bar myBar = (Bar)myFoo;

Итак, адаптируя это к вашему вопросу:

View myView = getDecorView();
FrameLayout myFrameLayout = (FrameLayout) myView;

или

FrameLayout myFrameLayout = (FrameLayout) getDecorView();

Вы должны защитить блок, выполняющий этот вызов, так как он будет выдавать ClassCastException, если экземпляр, возвращаемый getDecorView, равен , а не a FrameLayout (или (in) прямым подклассом этого ). Просто добавьте блок try / catch или добавьте объявление throwing в метод, содержащий эту строку. Все, что подходит вам лучше всего.

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