Я пытаюсь выяснить, как добавить поля вокруг фрагментов, добавляемых в GridLayout.
GridLayout gridLayout = mRegionPage.findViewById(R.id.xglRegionPage);
GridLayout.MarginLayoutParams foo =
new GridLayout.MarginLayoutParams(GridLayout.LayoutParams.WRAP_CONTENT,
GridLayout.LayoutParams.MATCH_PARENT);
foo.setMargins(20, 20, 20, 20);
gridLayout.setLayoutParams(foo);
Ресурс xml выглядит как
<GridLayout
android:id="@+id/xglRegionPage"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:rowCount="2"
... />
Я получаю ошибка:
java.lang.ClassCastException: android.view.ViewGroup$MarginLayoutParams
cannot be cast to android.widget.FrameLayout$LayoutParams
at android.widget.FrameLayout.onMeasure(FrameLayout.java:186)
at android.widget.HorizontalScrollView.onMeasure(HorizontalScrollView.java:491)
Если я закомментирую строку, которая устанавливает параметры макета, ошибки не будет.
GridLayout gridLayout = mRegionPage.findViewById(R.id.xglRegionPage);
GridLayout.MarginLayoutParams foo =
new GridLayout.MarginLayoutParams(GridLayout.LayoutParams.WRAP_CONTENT,
GridLayout.LayoutParams.MATCH_PARENT);
foo.setMargins(20, 20, 20, 20);
///gridLayout.setLayoutParams(foo);
Проблема для меня заключается в том, что я не использую ни одного FrameLayout в любом проекте. Я проверил все части инструментария, которые я использую, и ни одна из них не является подклассом из FrameLayout.
Есть ли альтернативный способ выполнить sh this?
Как FrameLayout запутался в все это? Или GridLayout построен на основе FrameLayout?
Если я хочу, чтобы два ряда карт с некоторым интервалом между ними, нужно было использовать два линейных макета?
Было предложено добавить поля к основанию фрагмента, который у меня уже есть без эффекта. Они выглядят так:
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/clRegionFragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/excited_shape"
android:layout_marginRight="50dp"
android:layout_marginLeft="50dp"
android:layout_marginTop="50dp"