我想让我的应用仅在横向模式下工作,但无法使其正常工作。我已经给了screenOrientation = "landscape"
,即使第一页将处于横向模式而其他活动将是纵向的。
XML文件
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Main"
android:label="@string/app_name"
android:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".IntroHome"
android:label="@string/app_name"
android:screenOrientation="landscape">
</activity>
<activity android:name=".ObjectivesPage"
android:label="@string/app_name"
android:screenOrientation="landscape" >
</activity>
<activity android:name=".MenuPage"
android:label="@string/app_name"
android:screenOrientation="landscape" >
</activity>
</application>
JAVA CLASS
public class ObjectivesPage extends Activity{
ImageButton imgButton;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.objectivespage);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
imgButton = (ImageButton)findViewById(R.id.buttonCloseNGo);
imgButton.setOnClickListener(onClickCloseNGo);
}
private OnClickListener onClickCloseNGo = new OnClickListener(){
public void onClick(View v) {
Intent intent = new Intent(ObjectivesPage.this,MenuPage.class);
startActivity(intent);
}
};
}
答案 0 :(得分:76)
保留清单的这一部分。例如,考虑IntroHome活动。
<activity android:name=".IntroHome"
android:label="@string/app_name"
android:screenOrientation="landscape"
>
</activity>
对于活动XML,请确保 layout-land 文件夹中的IntroHome活动布局XML 仅。这样,您拥有的活动/活动将仅显示您已定义的XML的横向版本。
答案 1 :(得分:3)
您也可以尝试从代码中设置方向
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
点击此链接了解更多信息
答案 2 :(得分:3)
您可以根据要求使用以下代码:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
和
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
您必须将这些代码放在setContentView(R.layout.layout_name.xml)
之前。
答案 3 :(得分:1)
尝试添加:
android:configChanges="orientation|keyboardHidden"
让我知道它是否有帮助!!只是一个猜测!!
答案 4 :(得分:-1)
这看起来像一个旧帖子,但它看起来像我在清单文件中将模式设置为横向,然后在java代码中将模式切换为横向,您可能会将模式切换两次导致设备而是以纵向模式渲染。尝试注释掉java文件中的代码,看看会发生什么。如果它不起作用你所要做的就是改回来。易于测试。