编辑:我正在进行上面的编辑,因为我认为我的问题需要重新措辞。
我的主要节目中有一条线用于下面的某个场景:
android:screenOrientation="portrait"
android:configChanges="keyboardHidden|orientation|screenSize"
这会将场景锁定为肖像。我需要的是一种在java中以编程方式解锁它的方法,并且通常的方式似乎没有起作用。我下面的代码块实际上是正确的,我在其他地方只是有错误的代码阻止它工作。
我想知道是否有一种方法可以强制特定活动在手机上显示为纵向,同时在平板电脑或任何其他更大的设备上仍允许其为纵向或横向?/ p>
我的情况比大多数类似的情况稍微复杂一点,因为我正在使用的活动继承自另一个我无法改变的活动类。出于某种原因,如果从手机调用onCreate(),其他活动将崩溃,因此我不能只使用“setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);”在onCreate()中,因为在调用super.onCreate()时应用程序仍然崩溃。
我尝试将活动锁定在清单中的肖像,然后将其添加到onCreate:
if(!mIsPhone)
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
然而,这没有做任何事情。平板电脑上的场景仍被锁定为肖像。
答案 0 :(得分:3)
首先,您可以使用以下方法查看设备是手机还是平板电脑:
public static boolean isTablet(Context context) {
return (context.getResources().getConfiguration().screenLayout
& Configuration.SCREENLAYOUT_SIZE_MASK)
>= Configuration.SCREENLAYOUT_SIZE_LARGE;
}
通过以下方式找到设定方向后:
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);