Ответы:
this.getWindow().getDecorView().findViewById(android.R.id.content)
или
this.findViewById(android.R.id.content)
или
this.findViewById(android.R.id.content).getRootView()
setContentView(R.layout.my_view)
, это возвращает родителя этого макета.
Вы можете получить вид назад, если вы добавите идентификатор в свой макет.
<RelativeLayout
android:id="@+id/my_relative_layout_id"
И вызвать его из findViewById ...
findViewById
?
Вы можете попробовать View.getRootView()
.
Нет метода isContentViewSet. Вы можете поместить несколько фиктивных вызовов requestWindowFeature в блок try / catch перед setContentView следующим образом:
пытаться { requestWindowFeature (Window.FEATURE_CONTEXT_MENU); setContentView (...) } catch (AndroidRuntimeException e) { // делать что-то или ничего }
Если представление содержимого уже было установлено, requestWindowFeature сгенерирует исключение.
Лучший вариант, который я нашел, и менее навязчивый, это установить параметр тега в вашем xml, например:
PHONE XML LAYOUT
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:tag="phone"/>
ПЛАНШЕТНАЯ ПЛАТА XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:tag="tablet">
...
</RelativeLayout>
и затем назовите это в своем классе деятельности:
View viewPager = findViewById(R.id.pager);
Log.d(getClass().getSimpleName(), String.valueOf(viewPager.getTag()));
Надеюсь, это работает для вас.
getWindow().findViewById(android.R.id.content)
:)