我正在开发一款Android应用,当用户旋转设备时,我不希望将其改为横向模式。此外,我希望锁定方向为手机上的纵向模式和平板电脑上的横向模式。这可以实现,如果是的话怎么样?感谢。
答案 0 :(得分:124)
您只需在AndroidManifest.xml
文件的activity元素内定义下面的属性即可。它会将您的方向限制为肖像。
机器人:screenOrientation = “纵向”
示例:的
<activity
android:name="com.example.demo_spinner.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
另外,根据Eduard Luca在下面的评论,如果您想要旋转180度,也可以使用screenOrientation="sensorPortrait"
。
答案 1 :(得分:40)
您必须在AndroidManifest.xml
中添加android:screenOrientation="portrait"
指令。这将在您的<activity>
代码中完成。
此外,Android开发者指南指出:
[...]您还应明确声明您的应用程序需要 无论是纵向还是横向 元件。例如,
<uses-feature android:name="android.hardware.screen.portrait" />
。
答案 2 :(得分:15)
我可以看到你已经接受了一个完全没有解决问题的答案:
android:screenOrientation="portrait"
这会强制您的应用在手机和平板电脑上都是肖像。
您可以在设备中强制使用该应用程序&#34;首选&#34;使用
进行定位android:screenOrientation="nosensor"
这会导致您的应用在大多数手机手机和平板电脑上使用横向画像。 有许多带键盘的手机专为横向模式设计。强制您的应用程序为肖像可以使它几乎无法在此类设备上使用。 Android最近也迁移到其他类型的设备。最好让设备选择首选方向。
答案 3 :(得分:12)
可能是......你必须通过编程方式识别它是平板电脑还是手机......
if(isTablet)
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}else
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
答案 4 :(得分:3)
<activity android:name=".yourActivity"
android:screenOrientation="portrait" ... />
添加到主要活动并添加
android:configChanges="keyboardHidden"
在调用键盘时保持程序不被更改模式。
答案 5 :(得分:1)
在活动标签下的清单文件中将屏幕方向设置为纵向。
答案 6 :(得分:0)
只需添加:
android:screenOrientation="portrait"
在“ AndroidManifest.xml ”中:
<activity
android:screenOrientation="portrait"
android:name=".MainActivity"
android:label="@string/app_name">
</activity>
答案 7 :(得分:0)
<application>
在<activity>
中为所有应用程序
FROM adoptopenjdk/openjdk11-openj9:alpine as base
ADD libs/ /libs
ADD service.jar /service.jar
RUN mkdir /hi
WORKDIR /hi
RUN ls /
RUN java -Xshareclasses:name=mycache -Xshareclasses:cacheDir=/hi -Xshareclasses -jar /usr/share/app/service.jar &
RUN sleep 5
RUN ls -la /hi
FROM adoptopenjdk/openjdk11-openj9:alpine-jre
COPY --from=base libs/ /usr/share/app/libs
COPY --from=base service.jar /usr/share/app/service.jar
RUN /bin/sh -c 'ps aux | grep java | grep service | awk '{print $2}' | xargs kill -1'
#RUN java -Xshareclasses:listAllCaches
ENTRYPOINT ["java","-jar", "-Xshareclasses" , "-Xtune:virtualized", "-XX:+UseContainerSupport", "/usr/share/app/service.jar"]
中的实际活动
答案 8 :(得分:0)
在活动标签下的清单文件中将屏幕方向设置为纵向。
这里是例子
您需要输入每个活动
肖像
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity"
对于风景
android:screenOrientation="landscape"
tools:ignore="LockedOrientationActivity"
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.thcb.app">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity2"
android:screenOrientation="landscape"
tools:ignore="LockedOrientationActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>