需要android屏幕定向方面的帮助吗
我的演示应用程序有问题。需要android屏幕定向方面的帮助吗,android,android-orientation,Android,Android Orientation,我的演示应用程序有问题。 请检查我附加的屏幕,我只想在纵向视图中查看活动A(在横向模式下不应更改),因此我在清单文件中声明ScreenOrientation=“protrait”,并且活动B(主题是对话框)应在任何模式(纵向或横向)下更改,但当我在横向模式下移动手机时,活动B不会改变手机的方向 活动A package com.example.activityorientation; import android.app.Activity; import android.content.Inte
请检查我附加的屏幕,
我只想在纵向视图中查看活动A(在横向模式下不应更改),因此我在清单文件中声明
ScreenOrientation=“protrait”
,并且活动B(主题是对话框)应在任何模式(纵向或横向)下更改,但当我在横向模式下移动手机时,活动B不会改变手机的方向
活动A
package com.example.activityorientation;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent it = new Intent(getApplicationContext(),DialogAct.class);
startActivity(it);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
活动B
package com.example.activityorientation;
import android.app.Activity;
import android.os.Bundle;
public class DialogAct extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.dailogact);
}
}
android:screenOrientation="fullSensor"
清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.activityorientation"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.activityorientation.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.activityorientation.DialogAct"
android:label="@string/app_name"
android:theme="@android:style/Theme.Dialog"/>
</application>
</manifest>
需要帮助,
谢谢。请在活动B中的
AndroidManifest.xml
的下面一行
android:configChanges="orientation"
它将在两个方向上工作
或
检查您的移动设置,或者检查设备的运动是否打开。在活动中覆盖
onConfigurationChanges()
方法。希望它能帮助你
并将其放入该活动下方的清单中
android:configChanges=“screenLayout | screenSize | orientation”
您尝试过-->
尝试在活动B中使用android:screenOrientation=“SensorGrait | Sensor横向”
当在顶部启动未指定方向(默认)的非全屏活动时,它遵循其后面的全屏活动的方向,以暂停模式启动。
但是,如果我们故意为非全屏活动指定方向值,它还将强制其后面处于暂停模式的全屏活动的方向随之改变
活动B不是全屏活动。
因此,当我们启动活动B时,活动A只进入暂停模式。
现在,对于这种情况,
如果活动B的屏幕方向未指定或未定义,则其方向将与活动A相同。
如果您有意将活动B的屏幕方向指定为横向,则它也会将活动A更改为横向模式
我建议将活动B设置为完整活动。将此代码放在OnCreate()中 OnCreate()方法的示例(工作): 以上代码在我的活动中起作用;在任何您想保持“纵向”的活动中尝试此代码。另外,如果您想要不同的方向,只需将
ActivityInfo.SCREEN\u ORIENTATION\u rait
更改为类似ActivityInfo.SCREEN\u ORIENTATION\u scape的其他内容代码>
特别是对您而言,这应该是有效的:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
package com.example.activityorientation;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
**setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);**
Intent it = new Intent(getApplicationContext(),DialogAct.class);
startActivity(it);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
编辑
这应该起作用:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
package com.example.activityorientation;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
**setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);**
Intent it = new Intent(getApplicationContext(),DialogAct.class);
startActivity(it);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
现在进入活动B:
package com.example.activityorientation;
import android.app.Activity;
import android.os.Bundle;
public class DialogAct extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.dailogact);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
}
我有同样的问题,这是帮助我:
活动B的加载项AndroidManifest
package com.example.activityorientation;
import android.app.Activity;
import android.os.Bundle;
public class DialogAct extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.dailogact);
}
}
android:screenOrientation="fullSensor"
请检查您的手机设置。您可能在不知不觉中锁定了屏幕方向功能mobile@SankarV我想你没有理解我的问题,我的定向功能工作得很好,但我只希望活动A具有纵向模式,活动B的视图在任何模式下都应该更改。但它并没有变成景观。请再次检查我的屏幕在活动下面的清单中显示android:configChanges=“screenLayout | screenSize | orientation”@Deen抱歉android:configChanges=“screenLayout | screenSize | orientation”不起作用我在两个活动中都检查了它。不确定,但如果您将活动B作为一个片段使用,它会有帮助吗?@pratik。。抱歉,android:configChanges=“orientation”未工作。。我检查了设置方向功能是否正常工作。感谢回复deen,我在活动B中覆盖了nConfigurationChanges()方法,还将android:configChanges=“screenLayout | screenSize | orientation”放在清单中,但仍然不起作用。尝试在启动器上覆盖它。好的,试着把它放在你的对话活动中android:screenOrientation=“fullSensor”它在横向或纵向模式下都会改变活动,但我只想在活动B中进行改变,而活动A应该只在纵向模式下查看。好的,删除那个,并通过代码设置对话活动中的configChanges模式。是的,我试过了。。但它在横向或纵向模式下都会更改活动,但我只想在活动B中进行更改,而活动A只应在纵向模式下查看。我不确定,但请尝试此-->Intent it=new Intent(此,DialogAct.class)代码>您是否尝试过--我无法编译我的应用程序,因为清单中有错误。。。。错误:错误:不允许使用字符串类型(在“screenOrientation”处,值为“Sensor肖像| Sensor横向”)。。。我想我们不能同时编写SensorGrait | SensorLandscape两者相加应该不会有问题。检查此链接——我建议添加v4支持库JAR——并尝试编译代码。由于自API级别9起支持Sensor横向和Sensor纵向属性。我已经添加了v4支持库&使用API级别17。。sensorLanscape或sensorPortrait可以工作,但两者都不工作。。在您给定的链接中,他们清楚地提到..值可以是以下字符串中的任意一个:。。请查收。。谢谢你的回复。。但在我的情况下,我必须把活动B作为主题。Dailog..不是我想要的工作。。。两个活动都会根据其方向更改其视图。但我只想通过更改其方向在活动B中进行更改,而活动A应仅在纵向中查看。请尝试设置活动A setRequestedOrientation(ActivityInfo.SCREEN\u orientation\u Grait);然后设置活动B setRequestedOrientation(活动信息屏幕方向传感器);