0

RelativeLayout を使用してレイアウトを作成しましたが、方向が横向きに変更されたときに上マージンを変更する必要があります。

   @Override
  public void onConfigurationChanged(Configuration newConfig) {
   super.onConfigurationChanged(newConfig);

   // Checks the orientation of the screen
   if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {

       RelativeLayout.LayoutParams labelLayoutParams = new RelativeLayout.LayoutParams(
                LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
      // labelLayoutParams.setMargins(0, -100, 0, 0);
       layout.setLayoutParams(labelLayoutParams);

       Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
   } 

しかし、次の例外が発生します

 06-25 22:22:31.166: E/AndroidRuntime(8211): java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams

だから、どのようにレイアウトパラメータを設定することができますか? プログラム的に

4

2 に答える 2

0

ビューの絶対位置を設定するに従って、この方法を試してください

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT);

    params.topMargin = 60;

    layout.setLayoutParams(params);
于 2012-06-25T18:36:59.903 に答える
0

これを試して:

RelativeLayout.LayoutParams labelLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
labelLayoutParams.topMargin = 10;
layout.setLayoutParams(labelLayoutParams);
于 2012-06-25T18:34:32.427 に答える