首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >肖像和DialogFragment上的景观活动

肖像和DialogFragment上的景观活动
EN

Stack Overflow用户
提问于 2015-05-05 10:44:26
回答 1查看 1.5K关注 0票数 1

我试图在风景上呈现肖像,但我的基础活动锁定在肖像上(android:screenOrientation=“DialogFragment”)。在创建对话框时,我通过这样做来实现对话框旋转。但是,当它显示时,容器似乎是旧格式(旋转之前的宽度和高度),旋转后的对话框不适合其中。此外,容器还剪切对话框的内容。

代码语言:javascript
代码运行次数:0
运行
复制
public class MenuFragment extends DialogFragment {

  private final int mOrientation;

  public PlantsMenuFragment(int orientation) {
    mOrientation = orientation;
  }


  public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    View mRootView = inflater.inflate(R.layout.fragment_plants_menu,
            container, false);

    if (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE == mOrientation) {
        mRootView.setRotation(90);
    }

    return mRootView;
  }
}

我已经尝试在布局xml中设置它,但结果是相同的。我该如何修复它?或者有一种更好的方式来以不同的活动方向呈现对话框?先谢谢你,

EN

回答 1

Stack Overflow用户

发布于 2015-05-05 11:41:59

覆盖每个片段中的setUserVisibleHint()。

在肖像中只有碎片:

代码语言:javascript
代码运行次数:0
运行
复制
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if(isVisibleToUser) {
        Activity a = getActivity();
        if(a != null) a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }
}

在纵向/横向片段中:

代码语言:javascript
代码运行次数:0
运行
复制
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if(isVisibleToUser) {
        Activity a = getActivity();
        if(a != null) a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
    }
}

这将允许整个活动在一个片段中旋转,但在其他片段中固定为肖像。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30043406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档