Добавить объекты на фон Android DialogFragment

Хотите добавить что-нибудь на фон диалогового окна, например

Добавить объекты на фон Android DialogFragment

Я пытался прочитать все документы, но не могу найти способ добавить check in текст на фон.

Вы можете сделать так, чтобы диалоговое окно занимало весь экран, и самостоятельно сделать фон в макете диалогового окна.

Androidz 06.05.2019 16:43

Привет @Androidz, у тебя есть пример?

Quoc-Anh Nguyen 06.05.2019 19:10
2
2
463
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Сделайте линейный макет с двумя внутренними макетами, где у верхнего будет прозрачный фон, а у другого будет контент.

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:app = "http://schemas.android.com/apk/res-auto"
    android:layout_width = "match_parent"
    android:layout_height = "match_parent"
    android:gravity = "center"
    android:orientation = "vertical">

    <LinearLayout
        android:layout_width = "50dp"
        android:layout_height = "50dp"
        android:background = "@android:color/transparent"
        android:orientation = "vertical">

        <ImageView
            android:id = "@+id/imageView"
            android:layout_width = "50dp"
            android:layout_height = "50dp"
            android:layout_gravity = "center"
            app:srcCompat = "@drawable/ic_clock" />
    </LinearLayout>

    <LinearLayout
        android:layout_width = "300dp"
        android:layout_height = "300dp"
        android:layout_margin = "10dp"
        android:background = "#000000"
        android:orientation = "vertical">

    </LinearLayout>

</LinearLayout>
Ответ принят как подходящий

Делал так, надеюсь поможет

Макет.xml

<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:calendar = "http://schemas.android.com/apk/res-auto"
    android:layout_width = "match_parent"
    android:id = "@+id/mainLayout"
    android:layout_height = "match_parent"
    android:layout_marginBottom = "@dimen/fifty_five_dp"
    android:background = "@android:color/transparent"
    android:orientation = "vertical">

    <androidx.cardview.widget.CardView
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:layout_marginLeft = "@dimen/twenty_dp"
        android:layout_marginTop = "@dimen/one_twenty_dp"
        android:layout_marginRight = "@dimen/twenty_dp"
        calendar:cardCornerRadius = "@dimen/three_dp"
        calendar:cardElevation = "@dimen/two_dp"
        calendar:cardPreventCornerOverlap = "true">

        <RelativeLayout
            android:layout_width = "match_parent"
            android:layout_height = "@dimen/fifty_five_dp"
            android:background = "@color/dull_white"
            android:padding = "@dimen/thirteen_dp"
            android:textSize = "@dimen/sixteen_sp">

            <TextView
                android:id = "@+id/leaveFromTo"
                android:layout_width = "wrap_content"
                android:layout_height = "wrap_content"
                android:layout_alignParentLeft = "true"
                android:layout_centerVertical = "true"
                android:fontFamily = "@font/sf_pro_display_bold"
                android:text = "@string/select_leaves_placeholder"
                android:textColor = "@color/darkGreyDeepDeep"
                android:textSize = "@dimen/sixteen_sp" />

            <TextView
                android:id = "@+id/leaveCount"
                android:layout_width = "wrap_content"
                android:layout_height = "wrap_content"
                android:layout_alignParentRight = "true"
                android:layout_centerVertical = "true"
                android:fontFamily = "@font/sf_pro_display_bold"
                android:text = "@string/days_placeholder"
                android:textColor = "@color/darkGrey"
                android:textSize = "@dimen/twelve_sp" />
        </RelativeLayout>
    </androidx.cardview.widget.CardView>

    <RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
        xmlns:calendar = "http://schemas.android.com/apk/res-auto"
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:layout_margin = "@dimen/seven_dp"
        android:layout_marginTop = "@dimen/fifteen_dp"

        android:background = "@drawable/box"
        android:padding = "@dimen/ten_dp">

        <RelativeLayout
            android:id = "@+id/okayLayout"
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:padding = "@dimen/thirteen_dp">

            <ImageView
                android:id = "@+id/calenderDrawable"
                android:layout_width = "@dimen/seventeen_dp"
                android:layout_height = "@dimen/seventeen_dp"
                android:layout_centerVertical = "true"
                android:src = "@mipmap/calener" />

            <TextView
                android:layout_width = "wrap_content"
                android:layout_height = "wrap_content"
                android:layout_centerVertical = "true"
                android:layout_marginStart = "@dimen/ten_dp"
                android:layout_toRightOf = "@+id/calenderDrawable"
                android:text = "Calender"
                android:textColor = "@color/blue_light"
                android:textSize = "@dimen/fourteen_sp" />

            <Button
                android:id = "@+id/btnDone"
                android:layout_width = "@dimen/seventy_dp"
                android:layout_height = "@dimen/twenty_six_dp"
                android:layout_alignParentRight = "true"
                android:layout_centerVertical = "true"
                android:layout_margin = "@dimen/three_dp"
                android:background = "@drawable/calender_button_background"
                android:text = "DONE"
                android:textColor = "@color/white"
                android:textSize = "@dimen/thirteen_sp" />


        </RelativeLayout>

        <View
            android:id = "@+id/view"
            android:layout_width = "match_parent"
            android:layout_height = "1dp"
            android:layout_below = "@id/okayLayout"
            android:layout_marginTop = "@dimen/ten_dp"
            android:background = "@color/viewColor" />

        <com.neomeric.nock.com.andexert.calendarlistview.library.DayPickerView
            android:id = "@+id/pickerView"
            android:layout_width = "match_parent"
            android:layout_height = "match_parent"
            android:layout_below = "@+id/view"
            android:layout_marginTop = "@dimen/ten_dp"
            android:background = "@color/dull_white"
            calendar:enablePreviousDay = "false" />

    </RelativeLayout>

</LinearLayout>

DatePickerPopup.java

    public class DatePickerPopup extends DialogFragment implements DatePickerController {
    private DayPickerView dayPickerView; 

    public DatePickerPopup() {
        // Empty constructor is required for DialogFragment
        // Make sure not to add arguments to the constructor
        // Use `newInstance` instead as shown below
    }

    public static DatePickerPopup newInstance(OnDatesSelected datesSelected, Date first, Date last) {
        DatePickerPopup frag = new DatePickerPopup();
        Bundle args = new Bundle();
        frag.setArguments(args);
        return frag;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View root = inflater.inflate(R.layout.date_selection_layout, container);
        getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

        return root;
    }

    public void setDateAndDaysCount(SimpleMonthAdapter.SelectedDays<SimpleMonthAdapter.CalendarDay> selectedDays) {

    }

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

    }

    @Override
    public int getMaxYear() {
        return 2021;
    }

    @Override
    public void onDayOfMonthSelected(int year, int month, int day) {


    }

    @Override
    public void onStart() {
        super.onStart();
        //  To make it match parent
        getDialog().getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);

    }

    @Override
    public void onDateRangeSelected(SimpleMonthAdapter.SelectedDays<SimpleMonthAdapter.CalendarDay> selectedDays) {

    }

}

Как это выглядит

Другие вопросы по теме