这是一个非常简单的应用程序。此应用程序应该在纵向模式下使用纵向,在使用别名资源时在风景中使用横向。
我将逐步解释我的所作所为。
我使用以下代码在res / values中创建了refs.xml文件:
<resources>
<item name = "activity_dualfragment" type="layout">@layout/activity_main</item>
</resources>
我使用以下代码在res / values-land中创建了refs.xml文件。
<resources>
<item name = "activity_dualfragment" type="layout">@layout/activity_main_land</item>
</resources>
我在布局文件夹中使用文字&#34; landscape&#34;创建了activity_main_land布局。
最后,我在onCreate方法的MainActivity.java中分配了别名资源。
的setContentView(R.layout.activity_dualfragment);
那有什么不对?请帮忙。
更新: 好吧,错误是由于我删除的主要活动中的浮动图标,错误消失了,现在应用程序没有崩溃。但是,当我运行应用程序之前,当我的设备处于纵向状态时,它会显示纵向,即使我将其更改为横向,但如果我的设备处于横向状态,则即使我将其设为纵向也显示横向。那么发生了什么? @nigam
答案 0 :(得分:0)
您应该在活动代码下的清单文件中使用此行:
android:configChanges="keyboardHidden|orientation|screenSize"
并使用以下方式获取当前屏幕的方向:
int orientation = this.getResources().getConfiguration().orientation;
if (orientation == Configuration.ORIENTATION_PORTRAIT) {
//code for portrait mode
Log.d("Orientation", "ORIENTATION_PORTRAIT");
} else {
//code for landscape mode
Log.d("Orientation", "ORIENTATION_LANDSCAPE");
}
答案 1 :(得分:0)
您可以为两个方向创建单独的布局。布局版本将由Android系统自动分配。您可以使用不同的文本放置TextView取决于方向版本。
布局文件必须具有相同的名称,但必须放在不同的子目录中。您可以使用Android Studio通过右键单击创建此项 - &gt;新 - &gt;新资源文件 - &gt;限定符定位如下所示:
答案 2 :(得分:0)
好的,我已经解决了更新中提到的问题。清单文件中的这行代码导致了问题。 机器人:configChanges = “keyboardHidden |方向|屏幕尺寸” 我删除它后,我的应用程序显示基于使用别名的方向的不同布局。