Я знаю, как получить представление корня с помощью View.getRootView(). Я также могу получить представление из кнопки onClick
, где аргумент View. Но как я могу получить представление в activity?
Получить представление корня из текущей активности
Ответ 1
Если вам нужен корневой вид вашей активности (чтобы вы могли добавить туда свое содержимое) используйте
findViewById(android.R.id.content)
Также сообщалось, что на некоторых устройствах вы должны использовать
getWindow().getDecorView().findViewById(android.R.id.content)
вместо.
Обратите внимание, что, как сообщал Booger, это может быть за панель навигации (с кнопкой "Назад" и т.д.) на некоторых устройствах (но, похоже, на большинстве устройств это не так).
Если вам нужно получить представление, которое вы добавили в свою деятельность, используя метод setContentView()
, тогда как pottedmeat написал, вы можете использовать
final ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
.findViewById(android.R.id.content)).getChildAt(0);
Но лучше просто установите id для этого представления в вашем макете xml и используйте этот идентификатор.
Ответ 2
Это то, что я использую, чтобы получить представление корня, найденное в XML файле, присвоенном setContentView
:
final ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
.findViewById(android.R.id.content)).getChildAt(0);
Ответ 3
Я тестировал это в android 4.0.3, только:
getWindow().getDecorView().getRootView()
дают то же представление, что мы получаем из
anyview.getRootView();
[email protected]#########
и
getWindow().getDecorView().findViewById(android.R.id.content)
задание дочернего элемента
[email protected]#######
Пожалуйста, подтвердите.
Ответ 4
Просто подрезать Кому-то нужен более простой способ:
Следующий код дает представление о всей деятельности:
View v1 = getWindow().getDecorView().getRootView();
Чтобы получить представление certian в действии, например imageView внутри действия, просто добавьте идентификатор этого представления, которое вы хотите получить:
View v1 = getWindow().getDecorView().getRootView().findViewById(R.id.imageView1);
Надеюсь, что это поможет кому-то.
Ответ 5
Получить представление корня из текущей активности.
Внутри нашей деятельности мы можем получить представление root
с помощью:
ViewGroup rootView = (ViewGroup) ((ViewGroup) this
.findViewById(android.R.id.content)).getChildAt(0);
или
View rootView = getWindow().getDecorView().getRootView();
Ответ 6
если вы находитесь в действии, предположите, что есть только один корневой вид, вы можете получить его так.
ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
.findViewById(android.R.id.content)).getChildAt(0);
вы можете перевести его в свой класс
или вы можете использовать
getWindow().getDecorView();
Обратите внимание, что это будет включать представление панели действий, ваше представление находится ниже представления панели действий