Страницы

Поиск по вопросам

понедельник, 16 декабря 2019 г.

Как не хардкодно расширить прозрачный DialogFragment

#android #android_fragment #dialogfragment


Имеется прозрачный DialogFragment.

public class TempFragment extends DialogFragment {

    static TempFragment newInstance() {
        TempFragment dialogFragment = new TempFragment();
        return dialogFragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle
savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_block_dialog, container, false);
        return v;
    }

    @NonNull
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        Dialog dialog = super.onCreateDialog(savedInstanceState);

        final Drawable drawable = new ColorDrawable(-15108398);
        drawable.setAlpha(200);

        dialog.getWindow().setBackgroundDrawable(drawable);
        dialog.getWindow().requestFeature(android.view.Window.FEATURE_NO_TITLE);

        return dialog;
    }

    @Override
    public void onStart() {
        super.onStart();
        getDialog().getWindow().setLayout(1000, 1500);
    }
}


Layout:




    

    


Ответы

Ответ 1



Можно получить размер экрана устройства и использовать его для размеров фрагмента Display display = getActivity().getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); getDialog().getWindow().setLayout(size.x, size.y); Также можно показывать фрагмент в активити, для которого в манифесте:

Комментариев нет:

Отправить комментарий