3

背景に透明な黒いレイヤーなしで DialogFragment を作成するか、少なくとも透明な白いレイヤーと交換する必要があります。

別のSO回答からこのトリックを使用しようとしましたが、それは私が探しているものではありません: getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.RED));

この画像でわかるように、ダイアログの周りに赤い領域がありますが、それは私が探しているものではありません。別の背景があるはずです: https://www.dropbox.com/s/4hlgil6btxtqcg4/dialog.png

アイデアや回避策があれば、私と共有してください。

ありがとうございました!

4

2 に答える 2

10

android:windowIsFloatingダイアログスタイルでfalseとandroid:windowBackgroundカスタムカラーに設定する必要があります:

スタイル.xml

<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="MyDialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowBackground">@color/orange_transparent</item>
        <item name="android:windowIsFloating">false</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowTitleStyle">@null</item>
        <item name="android:colorBackgroundCacheHint">@null</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
        <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
        <item name="android:gravity">center</item>
    </style>

</resources>

TestDialogFragment

public class TestDialogFragment extends DialogFragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setStyle(DialogFragment.STYLE_NO_TITLE, R.style.MyDialog);
    }
}
于 2013-11-04T11:12:52.577 に答える
4

色を透明に設定できます:

 dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));

または、ダイアログに独自のカスタム レイアウトを作成します。ここではを示します。

于 2013-11-04T11:14:09.887 に答える