5

私はDialogFragmentを持っている:DialogFragmentをモーダルにする方法は?

public static class CharacteristicDialog extends DialogFragment { 
     int mNum; 

     static CharacteristicDialog newInstance(int num) { 
      CharacteristicDialog f = new CharacteristicDialog();    
      Bundle args = new Bundle(); 
      args.putInt("num", num); 
      f.setArguments(args); 
      return f; 
     } 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      mNum = getArguments().getInt("num"); 
      setStyle(STYLE_NO_INPUT, 0);   
     } 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
      View v = inflater.inflate(R.layout.characteristic_dialog, container, false); 
      v.setOnClickListener(new OnClickListener() {     
      @Override 
      public void onClick(View v) { 
       dismiss(); 
      } 
     }); 
    } 

私はこのような私の主な断片でそれを作成します。

 DialogFragment newFragment = CharacteristicDialog.newInstance(v.getId()); 
     newFragment.setShowsDialog(true); 
     newFragment.show(getFragmentManager(), "dialog"); 

これはよく示しているが、(私が脇をクリックして、アクションを行うことができますモーダルではありませんダイアログの背後にある私のメインの断片に)。

モーダルにするにはどうすればよいですか?

おかげ

+0

'私はサイドをクリックして、メイン・フラグメントのダイアログの後ろでアクションを実行できます。本当に奇妙に聞こえる...ネイティブ・フラグメントまたはサポート・ライブラリーを使用していますか? Actionbarsherlock? – Falmarri

+0

私はサポートlibを使用していますが、Actionbarsherlockはありません。 –

答えて

3

はちょうどあなたのsetStyle()方法にSTYLE_NO_INPUTтоSTYLE_NORMALを変更。 DialogFragmentのスタイルとテーマの詳細については、docsをご覧ください。 http://developer.android.com/reference/android/app/DialogFragment.html

+0

それはありがとうでした。カスタムダイアログであるため、STYLE_NO_FRAMEを通常の代わりに使用しました。 –

+0

私のために働かない。 – stevehs17

5

これは私に役立ちました。

myDialogFragment.setCancelable(false); 
関連する問題