1

角を丸くして表示しているカスタムダイアログビューがあります。このため、正常に実行しているデフォルトのダイアログ境界フレームを非表示にする必要があります。getDialog()。getWindow()。setBackgroundDrawable(new ColorDrawable(0));。

私の問題は、ダイアログが親の幅全体を拡張し、通常のダイアログウィンドウのように幅の約90%だけを表示するようになったことです。getWindow()。setLayout(...)を設定し、レイアウトパラメータ属性も設定しようとしましたが、役に立ちませんでした。どんな助けでも大歓迎です。

*アップデート。getDialog()。getWindow()。setBackgroundDrawable(new ColorDrawable(0));を削除します。私のコードから幅の問題は修正されましたが、デフォルトのダイアログの境界線が表示される問題に戻ります。カスタムダイアログには境界線と丸みを帯びた角がないため、90%またはほとんどのダイアログのようなダイアログ幅を失うことなく境界線をなくす必要があります。

public final class ResetPasswordDialogFragment extends DialogFragment {

  public static ResetPasswordDialogFragment newInstance() {
    ResetPasswordDialogFragment f = new ResetPasswordDialogFragment();

    Bundle args = new Bundle();
    f.setArguments(args);

    return f;
   }

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.dialog_fragment_password_reminder, container, false);

    //Removes the default dialog background border
    getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(0));

    Button resetBtn = (Button)v.findViewById(R.id.resetPasswordBtn);
    Button closeBtn = (Button)v.findViewById(R.id.closeBtn);

    //Click Listeners
    resetBtn.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            //TODO web call here
        }
    });
    closeBtn.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
           dismiss();
        }
    });

    return v;
  }
}
4

1 に答える 1

0

これはあなたにとって最善の解決策ではないか、サンプルコードで役立つとは限りませんが、アクティビティまたは次のようなダイアログをトリガーするイベントでカスタムダイアログを作成することです:

          dialog = new Dialog(getActivity(),R.style.Theme_CustomDialog);
          dialog.setContentView(R.layout.custom_dialog);
          dialog.show();

境界線を削除したい場合は、Theme_Customダイアログで

       <item name="android:windowNoTitle">true</item>

次に、custom_dialog xml ファイルで、渡したいパラメーターとカスタム ダイアログ ボックスに持たせたいビューを含む線形/相対レイアウトを指定します。

別の方法として、http://android-developers.blogspot.com/2012/05/using-dialogfragments.htmlおよびhttp://android-er.blogspot.com/2012/01/dialogfragment.htmlをご覧ください。

于 2012-08-16T20:56:30.330 に答える