フラグメント (画面全体を占める) に対してダイアログを作成する必要があります。ダイアログは、フラグメントの上に配置されるフローティング ダイアログである必要があり、フラグメントはフラグメントの外側で暗くなります。
カスタムダイアログの場合、エッジが湾曲しているlinearLayoutがあります。何をしても、ダイアログのすべての側面に黒い境界線があります(非常に小さい)。私はそれを透明にして消えるようにすべてを試しました(そのため、すべてのダイアログは線形レイアウト-曲線ボックスになります)
DialogFragment の場合、これは onCreateView 用に持っているものです
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
LinearLayout layout =(LinearLayout)inflater.inflate(R.layout.custom_dialog, null);
LinearLayout item = (LinearLayout)layout.findViewById(R.id.display_item);
populateItemData(item, inflater);
return layout;
}
custom_dialog は、android:backgroung が #000000 に設定された LinearLayout です。
これは、カスタム ダイアログの私のスタイルです
<style name="CustomDialog" parent="android:style/Theme.Dialog">
<item name="android:windowBackground">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:alwaysDrawnWithCache">false</item>
<item name="android:windowContentOverlay">@null</item>
</style>
私はこのスタイルであらゆる種類の組み合わせを試しました (私がオンラインで見たものから)、その厄介な黒い境界線を取り除くことはできません. #000000...
私はこれに文字通り3〜4時間費やしました。他の誰かが助けてくれることを願っています...