我正在开发一个Android应用程序,我需要在运行时更改活动的布局
我想知道,当视图模式从纵向更改为横向或签证时,如何更改活动的布局
请有人告诉我什么是上述问题的可行和有效的解决方案。 在此先感谢
答案 0 :(得分:2)
最佳方法是设置横向文件夹,您可以将其命名为
layout-land
你会在该文件夹中放入另一个main.xml
,android框架会自动选择该横向布局。
答案 1 :(得分:1)
检测方向变化的代码
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
SharedVariables.isScreenOrientPotrail=false;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
else if(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES){
SharedVariables.isScreenOrientPotrail=true;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
答案 2 :(得分:0)
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.your_dyanmic_layoutid, null, true);
将 rowview 添加到您的mainlayout。
答案 3 :(得分:0)
我在这里粘贴代码..这个..
public void onConfigurationChanged(Configuration orient)
{
super.onConfigurationChanged(orient);
// Checks the orientation of the screen
if (orient.orientation == Configuration.ORIENTATION_LANDSCAPE)
{
//code here for LANDSCAPE..
));
}
else if (orient.orientation == Configuration.ORIENTATION_PORTRAIT)
{
//code here for PORTRAIT ..
}
}
CAll方法;
@Override
public void onCreate(Bundle savedInstanceState)
{
onConfigurationChanged(getResources().getConfiguration());
}