Я создаю диалог пользовательских фрагментов с круглыми углами и с макетом, который не заполняет ширину экрана (я бы предпочел, чтобы он просто обернул его содержимое).Пользовательский фрагментDialog с круглыми углами, а не 100% ширина экрана
это мой rounded_dialog.xml
в папке с выделением, которую мой пользовательский ThemeWithCorners
вызывается в качестве фона для диалога. Я также попытался установить его как фон для линейного макета, который создает его контент, но ничего не работает.
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<solid android:color="@android:color/white"/>
<corners android:radius="20dp"
/>
</shape>
и это, как я вызвать диалог:
final String FTAG = "TAG_FRAGMENT_DIALOG_CALENDAR";
dialog = (CalendarDialog) fm.findFragmentByTag(FTAG);
ft = fm.beginTransaction();
if (dialog != null)
{
ft.remove(dialog);
}
dialog = CalendarDialog.newInstance(this);
dialog.setCancelable(true);
ft.add(dialog, FTAG);
ft.show(dialog);
ft.commit();
В OnCreate метод диалога я создал стиль и тему:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NO_TITLE, R.style.ThemeWithCorners);
}
Это метод onCreateView:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
getDialog().setCanceledOnTouchOutside(true);
v = (MyCalendar)inflater.inflate(R.layout.calendar_dialog, container, true)
return v;
}
Я также попытался добавьте в метод onCreateDialog, как и другие ответы на SO предложил, но не получилось:
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
Dialog d = super.onCreateDialog(savedInstanceState);
LayoutParams lp=d.getWindow().getAttributes();
d.getWindow().setBackgroundDrawable(new ColorDrawable(0));
lp.width=-2;lp.height=-2;lp.gravity=Gravity.CENTER;
lp.dimAmount=0;
lp.flags=LayoutParams.FLAG_LAYOUT_NO_LIMITS | LayoutParams.FLAG_NOT_TOUCH_MODAL;
return d;
}
Так, чтобы подвести итог, я хочу, круглые углы, ширина экрана не 100%, предпочтительно он должен обернуть его содержание. Пожалуйста, пожалуйста, мне нужна помощь, я действительно в отчаянии об этом, я пробовал это в течение нескольких дней!
удивительный приятель. Спасибо –