所以我有一个非常简单的项目,只有几张图片。我创建了一个风景变化,并改变了图像的位置。
问题是,在模拟器或设备上运行项目时,将使用默认的横向布局而不是变体。
如果它在模拟器处于横向位置时运行,那么它确实使用了变体,但会弄乱画像。
我改变的唯一另一件事是styles.xml:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
作为应用主题。
我是Android Dev的新手。所以这可能是相当简单的事情。
非常感谢任何帮助。
清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.test">
<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:configChanges="orientation|screenSize|keyboardHidden" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
应该是什么样的:
https://i.stack.imgur.com/UXQCd.png
它不应该是什么样的:
答案 0 :(得分:0)
我找到了解决方案。
这涉及保持一线:
android:configChanges="orientation|screenSize|keyboardHidden" >
在MainActivity.java中只需添加一个onConfigurationChanged函数,如下所示:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
//retrieving resources for the variations
setContentView(R.layout.activity_main);
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
//retrieving resources for the variations
setContentView(R.layout.activity_main);
}
}
这是我能提出的最好的解决方案。可能有更好的方法,因为这看起来有点多余。