2009-10-23 2 views
3

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

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

Thanks,

ответ

1

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

Если это так, то это просто: Бросьте его.

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

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

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

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

или:

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

+0

Спасибо, это работает! – Renas

Смежные вопросы