关于如何防止方向改变的很多问题,但我的情况恰恰相反:我很难找到阻止我的应用中方向变化的原因。
我查看了清单和布局。我没有发现任何虚假的东西。但仍然 - 应用程序不会让步。如果我转到另一个应用程序,在那里切换方向并通过最近的任务返回我的应用程序 - 它将保持新的方向并且神奇地开始接收方向更改。
如果我关闭应用程序再次运行它 - 没有方向改变!
可能出现什么问题?
<?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="pl.qus.xenovideo">
<uses-sdk tools:overrideLibrary="tv.danmaku.ijk.media.player_arm64"/>
<uses-feature
android:name="android.hardware.wifi"
android:required="false" />
<!-- normal -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<!-- inne -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
<application
android:name="pl.qus.xenovideo.XenoVideo"
android:allowBackup="true"
android:icon="@mipmap/launcher"
android:supportsRtl="true"
android:label="@string/app_name"
android:largeHeap="true"
android:theme="@style/XenoBaseDark"
android:resizeableActivity="true"
tools:replace="android:theme">
<meta-data
android:name="android.app.default_searchable"
android:value=".NewMainActivity" />
<meta-data
android:name="com.crashlytics.ApiKey"
android:value="99e8ddc40dad5a041b2fde0a193875951a6967f0" />
<meta-data android:name="com.google.android.gms.car.notification.SmallIcon"
android:resource="@mipmap/launcher" />
<uses-library android:name="com.sec.android.app.multiwindow" android:required="false" />
<meta-data android:name="com.samsung.android.sdk.multiwindow.penwindow.enable" android:value="true" />
<meta-data android:name="com.sec.android.support.multiwindow" android:value="true" />
<!-- =======================================================================================
== AKTYWNOSCI ==
=========================================================================================-->
<!-- GLOWNA =============================================================================-->
<activity
android:windowSoftInputMode="adjustPan"
android:name="pl.qus.xenovideo.NewMainActivity"
android:label="@string/app_name"
android:launchMode="singleTop"
android:theme="@style/Theme.Transparent">
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
<!-- cut A LOT OF FILTERS HERE !>
</activity>
<!-- =======================================================================================
== SERWISY ==
=========================================================================================-->
<!-- SERWER UPNP ========================================================================-->
<service
android:name="pl.qus.xenovideo.xenoservice.XenoUpnpService"
android:icon="@mipmap/launcher"
android:label="xenovideo DLNA browsing" />
<!-- SERWER HTTP ========================================================================-->
<service
android:name="pl.qus.xenovideo.xenoservice.XenoStreaming"
android:exported="true"
android:icon="@mipmap/launcher"
android:label="xenovideo SMB streaming and home automation" />
<!-- =======================================================================================
== RISIWERY ==
=========================================================================================-->
<!-- RISIWER BATTONOW ===================================================================-->
<receiver android:name="pl.qus.xenovideo.xenoservice.MediaButtonIntentReceiver">
<intent-filter>
<action android:name="pl.qus.xenovideo.ACTION_MEDIA_BUTTONS" />
</intent-filter>
</receiver>
<!-- RISIWER EVENTOW BUDZACYCH XENO =====================================================-->
<receiver
android:name="pl.qus.xenovideo.xenoservice.ScanIntentReceiver"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.wifi.STATE_CHANGE" />
<action android:name="android.net.wifi.supplicant.CONNECTION_CHANGE" />
</intent-filter>
</receiver>
</application>
</manifest>
答案 0 :(得分:1)
透明主题阻止旋转。因此,在清单中删除或更改其他主题类型此字符串:android:theme="@style/Theme.Transparent"
答案 1 :(得分:0)
尝试像xxxActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_xxx);
// set orientation
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
答案 2 :(得分:0)
boolean flagOrient; if(flagOrient){setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } else {setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);}
并且不要忘记创建适当的屏幕