如何根据实际方向使用不同的片段?

时间:2019-06-06 04:41:29

标签: java android android-fragments

我在网站的各处搜索,没有找到答案。到目前为止,当方向改变时,我设法保留了App的重要状态,但现在我希望每个方向都有单独的片段:

如果(肖像模式)=>将片段肖像附加到活动

如果(横向模式)=>将片段横向附加到活动

我不想要两个单独的布局,而是两个不同的片段(这是因为我想添加一些“不可能”在纵向模式下实现的功能)。我该如何实现?

2 个答案:

答案 0 :(得分:1)

我们建议您在类似波纹管的活动的onResume()方法中检查您的方向。

@Override
    protected void onResume() {
        super.onResume();
        int mOrientation = this.getResources().getConfiguration().orientation;
        if (mOrientation == Configuration.ORIENTATION_PORTRAIT) {
            // code for portrait mode
            //Add your Portarait fragment
        } else {
            // code for landscape mode
            // Add your landscape fragment
        }
    }

答案 1 :(得分:0)

您可以在要附加片段的活动的onConfigurationChanged中检查方向的变化。

所以,您需要做的是

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        //set the fragment for landscape mode
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
         //Set the fragment for portrait mode
    }
}

此外,不要忘记添加

android:configChanges="orientation|screenSize”在您要处理配置更改的清单文件中的活动标签中。