我已经在MainActivity中为我的应用制作了2个布局(不是XML),这是2个不同的项目,但是我不知道如何将它们组合在一起。我们不应该使用2种不同的XML布局来定向,而应该使用if if else语句来确定填充。这是我的布局:
GridLayout grid = new GridLayout(this);
grid.setColumnCount(3);
grid.setRowCount(4); //4th row is for results box
我想在设备处于横向状态时实施此操作:
grid.setOrientation(GridLayout.HORIZONTAL);
grid.setPadding(750,20,0,0); //moves to middle
任何建议?
首先将此添加到AndroidManifest.xml上的活动标签中:
android:configChanges="orientation"
它告诉android,您将在此活动上处理方向更改。现在,当更改设备方向时,将在您的活动或片段上调用回调方法onConfigurationChanged。您必须覆盖它并检查显示的方向,然后根据方向进行所需的更改。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
}
}
查看官方文档here
无论如何,考虑到良好的习惯和更好的职责分离,您可能希望将布局分离为单独的XML。