2010-12-08 17 views
1

Googleグループのアンドロイドグループで投稿した投稿を繰り返しています(http://groups.google.com/group/android-developers/browse_thread/thread/78d0b7496a51e3b7#)、うまくいけば、ここで運がいいよ!ランドスケープで常にダイアログを表示する

私はアイテムのリストを表示するアクティビティを持っています。アイテムをクリックすると、 いくつかのボタンと画像を含む全画面ダイアログが表示されます。この は風景ではすばらしく見えますが、肖像画がよく見えません( の画像アスペクト比のため)。私は への可能性が現在の画面に関係なく常にこのダイアログをランドスケープで表示するかどうかを知りたいです ダイアログが終了すると、 の向きがセンサに返されます。ここで私がこれまで持っているものです。

OnItemClickListener listlistener = new OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView parent, View arg1, int position, 
           long arg3) { 
         final Dialog dialog = new Dialog(getParent()); 
         dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
         final int orientation = 
getResources().getConfiguration().orientation; 
         if (orientation == 1){ 
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
         } 
         dialog.setContentView(R.layout.dialog); 
         dialog.setCancelable(true); 
         ImageView img = (ImageView) dialog.findViewById(R.id.img); //A 
static image for testing UI 
         //BUTTON LISTENERS HERE 
         dialog.show(); 
         dialog.setOnCancelListener(new OnCancelListener() { 
           @Override 
           public void onCancel(DialogInterface dialog) { 
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); 
           } 
         }); 
       } 
     }; 

しかし、そうすることによって、画面が第1の向きを変更して、ダイアログを表示するように をしようとします。しかし、向きが変わると、画面は アクティビティを再開し、私のダイアログは表示されません。これを行う方法がより簡単なのは ですか?ダイアログに2つの異なるレイアウトを使用でき、 は向きに応じて対応するものをロードできますか?その場合、 ポートレートモードのXMLはどのように見えますか? ありがとう!

答えて

1

ダイアログボックスでカスタムレイアウトを使用している場合は、新しいレイアウトをデザインしてレイアウトランドフォルダに配置します(必要に応じて作成します)。自動的に対応するレイアウトがロードされます。

+0

おそらく私は明確に説明していません。ユーザーが項目をクリックすると、現在の向きが縦長の場合、ダイアログボックスが横長の全画面で開くようにします。この方法でダイアログボックスをロードするにはどうすればよいですか?私のイメージの長さは常にその高さよりも大きいので、ポートレートモードでダイアログを読み込むと、イメージの上下に空きスペースがたくさんあります。 – WanderingWizard

+1

私はそれを両方のレイアウトで動作させる方法を見つけるでしょうが、もしあなたがやりたいことをしたいのであれば、静的ブール変数を使ってonCreateの間に評価され、その値に応じてダイアログが起動されます。こうすることで、アクティビティが再作成されているにもかかわらず、あなたが持っているコードが動作します。 – blindstuff

関連する問題