Параметры макета не работают в пользовательском фрагменте диалога

#android #android-layout #android-fragments #android-dialogfragment

#Android #android-layout #android-фрагменты #android-dialogfragment

Вопрос:

Я пытаюсь настроить свой пользовательский фрагмент диалогового окна на использование всей ширины экрана. Одним из решений является установка LayoutParams для просмотра. Но они не работают. Что я пробовал

  1. Изменение родительского макета
  2. использование getLayoutParams().getClass(), который возвращает null

Средство проверки макета показывает правильный макет, поэтому здесь нет проблем, вот мой макет

 <?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
    style="@style/MaterialAlertDialog.MaterialComponents.Title.Text.CenterStacked"
    android:id="@ id/ask_hint_dialog"

    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/white"
    android:orientation="vertical">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <LinearLayout
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:id="@ id/puppy_vw"
            android:layout_centerInParent="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <pl.droidsonroids.gif.GifImageView
                android:layout_width="150dp"
                android:layout_height="wrap_content"
                android:src="@drawable/solving"
                android:adjustViewBounds="true">

            </pl.droidsonroids.gif.GifImageView>

            <com.google.android.material.textview.MaterialTextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                style="@style/MaterialAlertDialog.MaterialComponents.Title.Text.CenterStacked"
                android:text="@string/ad_confirm_text"/>
        </LinearLayout>
        <LinearLayout
            android:layout_alignParentEnd="true"
            android:layout_below="@id/puppy_vw"
            android:id="@ id/ad_confm_btns"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="horizontal"
            android:layout_centerInParent="true">

            <com.google.android.material.button.MaterialButton
                android:id="@ id/yes_hint"
                android:layout_margin="5dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:textColor="@color/white"
                android:backgroundTint="@color/cardview_dark_background"
                style="@style/Widget.MaterialComponents.Button.TextButton.Dialog"
                android:text="Yes">
            </com.google.android.material.button.MaterialButton>
            <!--
            <com.google.android.material.button.MaterialButton
                android:id="@ id/no_hint"
                android:layout_margin="5dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@color/white"
                android:backgroundTint="@color/cardview_dark_background"
                style="@style/Widget.MaterialComponents.Button.TextButton.Dialog"
                android:text="No">
            </com.google.android.material.button.MaterialButton>
            -->
            <com.google.android.material.button.MaterialButton
                android:id="@ id/why_hint"
                android:layout_margin="5dp"
                android:layout_gravity="center"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:backgroundTint="@color/cardview_dark_background"
                style="@style/Widget.MaterialComponents.Button.UnelevatedButton"
                android:text="Why Ads?">
            </com.google.android.material.button.MaterialButton>


        </LinearLayout>

    </RelativeLayout>

</LinearLayout>
</FrameLayout>

 

Вот мой класс DialogFragment

 
public class AdLoadFragment extends DialogFragment {
    
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        AskHintDialogBinding binding=AskHintDialogBinding.inflate(inflater,container,false);
        View view=binding.getRoot();

        return  view;

    }


    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        MyUtilsApp.showLog(String.valueOf(view.getClass()));
        view.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
                FrameLayout.LayoutParams.MATCH_PARENT));                
    }

}