Необходимо удалить верхнюю и нижнюю границы из фрагмента диалога. Как ты делаешь это?
AlertDialog.Builder builder = new AlertDialog.Builder(activity); builder.setCancelable(true); LayoutInflater inflater = LayoutInflater.from(activity); View view = inflater.inflate(R.layout.variants_dialog, null); // setup views setupListView(view); ... builder.setView(view); return builder.create(); // HERE I HAVE TOP & BOTTOM BLACK BORDERS
Это ничего не делает:
builder.setView(view); AlertDialog result = builder.create(); result.getWindow().setBackgroundDrawable(new ColorDrawable()); return result;
Такого метода нет:
dialog.setView(layout, 0, 0, 0, 0);
Однако я не знаком с DialogFragments, но с регулярными диалогами для этого вы обычно должны использовать R.value.styles и добавлять:
<style name="myDialog" parent="@android:style/Theme.Dialog"> <item name="android:buttonStyle">@style/Button</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowAnimationStyle">@style/PauseDialogAnimation</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:textColor">#FFFFFFFF</item> <item name="android:shadowColor">#cdc9c9</item> <item name="android:shadowDx">0</item> <item name="android:shadowDy">-1</item> <item name="android:shadowRadius">0.5</item> </style>
И установите для вашего диалога стиль myDialog
. Однако, с dialogFragments , кажется, вам нужно определить стиль при его инициализации, DialogFragment.STYLE_NO_FRAME;
, Надеюсь, что это помогает, хотя я знаю, что это был не полный ответ.
НАЙДЕННОЕ РЕШЕНИЕ !!
Здесь нет
setView(layout, 0, 0, 0, 0);
На построителе из dialogFragment, но AlertDialog имеет этот метод .. поэтому вместо возврата
builder.create();
сделай это
//dont set view for builder! AlertDialog result = builder.create(); result.setView(view, 0, 0, 0, 0); return result;
Это то, что сработало для меня:
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
У меня была аналогичная проблема не так давно. Проблема в том, что Builder не позволяет вам играть с заполнением диалога вообще. Моя работа заключалась в создании подкласса AlertDialog:
final class PaddinglessDialog extends AlertDialog { public PaddinglessDialog(Context context, int theme) { super(context, theme); } }
Затем я продолжил использовать его так:
PaddinglessDialog alertDialog = new PaddinglessDialog(this, android.R.style.Theme_Holo_Light_Panel); View layout = LayoutInflater.from(this).inflate(R.layout.my_dialog_layout, ...); alertDialog.setView(layout, 0, 0, 0, 0); alertDialog.setCanceledOnTouchOutside(false); ... dialog = alertDialog;