Gar*_*con 26 android android-layout android-fragments android-orientation android-viewpager
我的应用程序有一个Activity,其中包含一个带有四个片段的FragmentPagerAdapter(使用ViewPagerIndicator库).其中一个片段设计了单独的纵向和横向布局,其他三个不需要并且需要固定为纵向.
我的想法是设置android:configChanges="orientation"在清单中,并呼吁getActivity().setRequestedScreenOrientation()在onResume()所有的碎片,锁定到SCREEN_ORIENTATION_PORTRAIT在他们三个,而是SCREEN_ORIENTATION_UNSPECIFIED在需要允许旋转的一个,但这不起作用.该应用程序仍处于纵向模式.
有没有办法实现这个目标?
实际活动实际上不需要旋转,如果无论如何都允许片段在没有活动的情况下改变方向,但我没有发现任何提及这是可能的.如果活动旋转也同样可以,因为标签栏在横向时将被隐藏.
Gar*_*con 35
覆盖setUserVisibleHint()每个片段.
在肖像中只有片段:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if(isVisibleToUser) {
Activity a = getActivity();
if(a != null) a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
Run Code Online (Sandbox Code Playgroud)
在肖像/风景片段中:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if(isVisibleToUser) {
Activity a = getActivity();
if(a != null) a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
}
}
Run Code Online (Sandbox Code Playgroud)
这将允许整个活动在一个片段中旋转,但在其他片段中将其固定为纵向.
Geo*_*ker 10
对我有用的一件事就是放
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
Run Code Online (Sandbox Code Playgroud)
在OnCreateView()每个片段的方法的顶部.您可能希望替换ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR为适当的SCREEN_ORIENTATION常量.
一旦我这样做,它在ICS上完美地工作.您没有事件必须调整特定活动的清单.
| 归档时间: |
|
| 查看次数: |
24907 次 |
| 最近记录: |