如何使用横向/纵向旋转正确设置动态定义的LinearLayout?

时间:2012-01-07 11:09:32

标签: android android-layout

我动态定义了所有GUI组件。当第一次按下Cntrl + F11时,布局正确地从​​纵向更新为横向。但是当我再次按下Cntrl + F11时,布局仍保留在其景观中#34;看。如何为"肖像"更新它?再看一次?源代码:

//Main Layout ll
LinearLayout ll ;
ll.setOrientation (LinearLayout.VERTICAL);
ll.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));

//Inner layout ll2 is inside of the main layout ll
LinearLayout ll2 = new LinearLayout (this);
ll2.setWeight(1.0f);

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
lp.weight = 0.25f;

//Button b is inside of the inner layout ll2
Button b = new Button (this);
b.setLayoutParams(lp);
ll2.addView (b);

ll.addView(ll2);

我试过这个解决方案(来自这个网站): 我添加了功能

    public void onConfigurationChanged(Configuration newConfig) {
      super.onConfigurationChanged(newConfig);
      setContentView(ll);
    }

并在AndroidManifest中设置我

android:configChanges="keyboardHidden|orientation"

但它很有效。谢谢。

2 个答案:

答案 0 :(得分:2)

在xml文件中使用

android:orientatoin =“portrait”

也可以在onCreate()方法中写入

您还可以像这样在ANDROID_MANIFEST中指定

 <activity android:name=".activityName" android:screenOrientation="landscape"></activity>

答案 1 :(得分:0)

要将配置还原为肖像,请使用组合键ctrl + F9