在何处检查android片段中的方向更改

在何处检查android片段中的方向更改,android,android-fragments,Android,Android Fragments,在我的应用程序中,我有一个片段活动,其中有多个片段都处于纵向模式,只有一个特定的片段。我通过FragmentActivity中的footerViews在fragments之间移动 当方向发生变化时,我对这个特定的片段有不同的布局(实际上有相同的名称但不同的小部件Views)。在横向模式下,我想从片段活动的布局视图和页脚视图中删除特定的小部件,回到纵向模式时,将所有内容都添加回去 我已将所需的所有数据保存在片段中的onSavedInstanceState()中,但我应该在哪里测试方向更改,以便可以

在我的应用程序中,我有一个
片段活动
,其中有多个
片段
都处于纵向模式,只有一个特定的
片段
。我通过
FragmentActivity
中的footer
View
s在
fragments
之间移动

当方向发生变化时,我对这个特定的
片段有不同的布局(实际上有相同的名称但不同的小部件
View
s)。在横向模式下,我想从
片段活动的
布局
视图和页脚
视图
中删除特定的小部件,回到纵向模式时,将所有内容都添加回去

我已将所需的所有数据保存在
片段
中的
onSavedInstanceState()
中,但我应该在哪里测试方向更改,以便可以适当地恢复
视图


我不确定是否可以覆盖
onConfigurationChange()
并在我的
片段中进行测试,因为我的android
清单中没有android:configChanges=“orientation”

在onCreate()中保留此签入。旋转设备时,应用程序将重新启动。因此,当应用程序重新启动时,再次调用onCreate

int currentOrientation = getResources().getConfiguration().orientation;
if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE) {
   // Landscape
}
else {
   // Portrait  
}

您还可以通过覆盖片段的
onConfigurationChanged
函数来控制方向更改

    @Override
    public void onConfigurationChanged(Configuration newConfig) {

        super.onConfigurationChanged(newConfig);
        int currentOrientation = getResources().getConfiguration().orientation;

        if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE){
           Log.v("TAG","Landscape !!!");
        }
        else { 
           Log.v("TAG","Portrait !!!");
       }
   }

您可以为纵向视图和横向视图创建单独的XML。在“res”文件夹中创建一个名为“layoutland”的文件夹,并在该文件夹中为风景视图创建一个xml。保持两个XML(纵向和横向)的名称相同。您的视图将自动调整。确保每个xml中的所有小部件都完好无损(只需将两个视图中不需要的小部件的可见性更改为“已消失”)。非常感谢。但实际上,我刚从我的评论中意识到,我的意思是你的回答给了我其他的想法。。我不是真的想问这个问题,但很高兴它发生了,因为我忘记了使用视图可见性选项。:)我的荣幸:)很高兴它帮助了你。成功了!11111111111111111