我想知道如何根据 JAVA 中的设备方向更改我的 LinearLayout 方向,我发现如何通过 XML 方式使用 layout 和 layout-land 来实现,但我没有找到如何通过 java 方式来实现。
非常感谢。
我想知道如何根据 JAVA 中的设备方向更改我的 LinearLayout 方向,我发现如何通过 XML 方式使用 layout 和 layout-land 来实现,但我没有找到如何通过 java 方式来实现。
非常感谢。
看到这个它描述了如何检测方向改变然后在java中改变方向
在onCreate()
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
linearlayout=........;
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
// landscape
linearlayout.setOrientation(LinearLayout.HORIZONTAL);
}
else {
// portrait
linearlayout.setOrientation(LinearLayout.VERTICAL);
}
....
}
并且在 onConfigurationChanged()
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
// landscape
linearlayout.setOrientation(LinearLayout.HORIZONTAL);
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
// portrait
linearlayout.setOrientation(LinearLayout.VERTICAL);
}
}
在 onCreate() 中放入以下代码:
int currentOrientation = getResources().getConfiguration().orientation;
if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE) {
// Landscape
linearlayout.setOrientation(LinearLayout.HORIZONTAL);
}
else {
// Portrait
linearlayout.setOrientation(LinearLayout.VERTICAL);
}