当我将Android手机颠倒时,我的"活动"不会旋转以显示布局颠倒,而是保持横向模式.我用一个非常简单的HelloWorld应用程序尝试了这个.我添加android:configChanges="orientation"到清单并onConfigurationChange()在Activity中覆盖以在那里设置断点.将设备颠倒旋转会产生一个配置更改,从纵向(颠倒)到横向,但没有从横向到纵向的第二个更改(颠倒).这是一个Android问题还是我需要做的事情?
表现:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="hello.world"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:configChanges="orientation"
android:name=".HelloWorldActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
活动:
public class HelloWorldActivity
extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
{
Log.e("MDO", "orientation change: landscape");
}
else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT)
{
Log.e("MDO", "orientation change: portrait");
}
}
}
Run Code Online (Sandbox Code Playgroud)
这不是问题,而是Android的运作方式.它只能在横向模式下观看,而不是纵向观看(如果我没记错的话,可以在版本2.2中查看).从纵向移动到横向时发生配置更改,反之亦然.如果您想检查手机是否倒置或无论您需要访问加速计传感器的方向.这是一个关于如何使用它的教程,在这里你有SensorManager文档.
编辑:正如问题的作者自己发现的那样android:screenOrientation="fullSensor",只要您不想支持比Android 2.3更早的版本(API级别9),添加到您的清单就足够了.
| 归档时间: |
|
| 查看次数: |
4966 次 |
| 最近记录: |