Tworzę niestandardowe okno dialogowe fragmentów z zaokrąglonymi rogami iz układem, który nie wypełniałby szerokości ekranu (wolałabym, gdyby po prostu zawinął jego zawartość).Własny FragmentDialog z zaokrąglonymi narożnikami, a nie 100% szerokości ekranu
To jest mój rounded_dialog.xml
w folderze do rysowania, który jest wywoływany przez mój Custom ThemeWithCorners
jako tło dla okna dialogowego. Próbowałem również ustawić go jako tło dla układu liniowego, który tworzy jego zawartość, ale nic nie działa.
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<solid android:color="@android:color/white"/>
<corners android:radius="20dp"
/>
</shape>
i to jest jak wywołać okno dialogowe:
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();
W onCreate metody oknie ustawić styl i tematyka:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NO_TITLE, R.style.ThemeWithCorners);
}
Jest to metoda 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;
}
Próbowałem również dodać do tego sposobu onCreateDialog jak inne odpowiedzi na SO zasugerował, ale nie działa albo:
@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;
}
Więc Podsumowując, chcę zakręty, a nie 100% szerokości ekranu, to korzystnie powinien zawinąć jego treść. Proszę, potrzebuję pomocy, naprawdę jestem zrozpaczony tym, próbuję to od wielu dni!
wspaniały kumpel. Dziękuję –