6

Dialog角を丸くしたいのですが、 が表示されるDialogと、その下に長方形があり、次のように角の下に表示されます。

ここに画像の説明を入力

dialogカスタムを使用してビルドしますDialogFragment

public class MyDialogFragment extends DialogFragment{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    LayoutInflater inflater = getActivity().getLayoutInflater();

    builder.setView(inflater.inflate(R.layout.playdialog, null));
    return builder.create();
}
}

ダイアログ レイアウト (playdialog) には、背景として次のドローアブルがあります。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >

    <solid
        android:color="#AAAAAAAA" />

    <stroke
        android:width="2dp"
        android:color="#FF000000" />

    <corners android:radius="20dp" />
</shape>

私が言ったように、私はこのドローアブルを背景として設定しました:

android:background="@drawable/dialog_background"

私はその四角形を見られたくない。どうすればできますか??

この投稿では、ユーザーは同じ問題を抱えていました私は彼のために働いた解決策を使おうとしましたが、私にはうまくいきませんでした. 私DialogFragmentはこのように変更しました:

public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    LayoutInflater inflater = getActivity().getLayoutInflater();

    builder.setView(inflater.inflate(R.layout.playdialog, null));
    Dialog d = builder.create();
    d.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));

    return d;
}

結果はまったく同じです。その長方形を削除するにはどうすればよいですか?

ありがとう!

4

5 に答える 5

7

同じ問題が発生したときはショックを受けました。解決策も少し奇妙です。たとえば、以下を参照してください。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <solid android:color="@color/text_highlight" />

    <stroke
        android:width="5dp"
        android:color="@color/text_highlight" />

    <corners android:radius="12dp" />

    <stroke
        android:width="1dp"
        android:color="@android:color/transparent" />

</shape>

ダイアログに次の行を追加します。

 dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

 // This is line that does all the magic
 dialog.getWindow().setBackgroundDrawableResource(                             
 R.drawable.dialog_rounded);
于 2014-12-23T05:59:01.663 に答える
4

あなたのスタイルを設定してみてDialogFragmentくださいTheme_Translucent.

setStyle(STYLE_NO_FRAME, android.R.style.Theme_Translucent);

わたしにはできる。

于 2013-06-25T09:56:06.687 に答える
1

追加
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

onCreateView()MyDialogFragmentのメソッドに

于 2016-04-04T15:58:43.757 に答える
0

これを試して:

customDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
于 2014-12-01T05:32:55.340 に答える