Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要android屏幕定向方面的帮助吗_Android_Android Orientation - Fatal编程技术网

需要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(活动信息屏幕方向传感器);