如何获得Activity的内容视图?
我应该调用什么方法来知道一个Activity是否有它的contentView(一旦调用了方法setContentView() )?
this.getWindow().getDecorView().findViewById(android.R.id.content)
要么
this.findViewById(android.R.id.content)
要么
this.findViewById(android.R.id.content).getRootView()
如果您将ID添加到您的布局,则可以查看返回。
<RelativeLayout android:id="@+id/my_relative_layout_id"
并从findViewById调用它…
你可能想尝试View.getRootView()
。
怎么样
View view = Activity.getCurrentFocus();
您也可以重写onContentChanged()
,当setContentView()
被调用时会onContentChanged()
。
没有“isContentViewSet”方法。 你可以在setContentView之前把一些requestWindowFeature调用放到try / catch块中,像这样:
尝试{ requestWindowFeature(Window.FEATURE_CONTEXT_MENU); 的setContentView(...) catch(AndroidRuntimeException e){ //做什么都不要做 }
如果内容视图已经设置,requestWindowFeature将会抛出一个exception。
我发现的最好的select和较less的侵入性,就是在你的xml中设置一个标签参数
电话XML布局
<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()));
希望它适用于你。
- 如何处理Android应用程序通过滑动杀死代码?
- Android在滚动结束时dynamic加载列表视图?
- 在Android Studio中自动在多个设备上运行应用
- 将片段之间的数据传递给活动
- “aapt”IOException错误= 2,没有这样的文件或目录“为什么我不能在jenkins上构build我的gradle?
- 没有find类“com.google.firebase.provider.FirebaseInitProvider”?
- 在android studio中由colorpid彩色logcat
- 错误:ConnectionResult {statusCode = INTERNAL_ERROR,resolution = null}
- Androidselect器和文字颜色