我有一个gridView
,其中包含许多图片和文字widgets
。 XML看起来像这样(其余小部件看起来相同):
<GridLayout
android:id="@+id/grid"
android:layout_width="0dp"
android:layout_height="218dp"
android:alignmentMode="alignBounds"
android:columnCount="3"
android:rowCount="4"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/graphicContainer">
<ImageButton
android:id="@+id/cookieImageButton"
android:layout_columnWeight="1"
android:layout_gravity="fill_horizontal"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="0"
android:layout_row="0"
android:background="#0000"
android:scaleType="fitCenter"
app:srcCompat="@drawable/cookie_icon_60at3x"
tools:layout_editor_absoluteX="33dp"
tools:layout_editor_absoluteY="300dp"
/>
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_columnWeight="1"
android:layout_gravity="fill_horizontal"
android:layout_row="1"
android:autoSizeMinTextSize="40px"
android:autoSizeTextType="uniform"
android:fontFamily="@font/youre_so_cool_regular"
android:text="Cookies"
android:textAlignment="center"
tools:layout_editor_absoluteX="33dp"
tools:layout_editor_absoluteY="369dp" />
这很好,但是我希望widgets
(图像按钮和文本视图)的大小可以动态更改以填充整个gridView
。有没有办法用XML做到这一点?我一直在寻找答案,并找到了类似的替代方案:https://stackoverflow.com/questions/6444042/java-resize-image-dynamically-to-fit-grids-in-gridlayout
但是似乎不必要的复杂,并且可以并且应该使用一些XML代码来解决。还是我错了?
答案 0 :(得分:1)
尝试此代码.. 将以下依赖项添加到应用程序级别的gradle文件中。
implementation 'com.intuit.sdp:sdp-android:1.0.4'
然后在改变这些东西之后。
<GridLayout android:id="@+id/grid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alignmentMode="alignBounds"
android:columnCount="3"
android:rowCount="4"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/graphicContainer"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageButton
android:id="@+id/cookieImageButton"
android:layout_columnWeight="1"
android:layout_gravity="fill_horizontal"
android:layout_width="@dimen/_60sdp"
android:layout_height="@dimen/_60sdp"
android:layout_column="0"
android:layout_row="0"
android:background="#0000"
android:scaleType="fitCenter"
app:srcCompat="@drawable/cookie_icon_60at3x"
tools:layout_editor_absoluteX="33dp"
tools:layout_editor_absoluteY="300dp"
/>
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_columnWeight="1"
android:layout_gravity="fill_horizontal"
android:layout_row="1"
android:autoSizeMinTextSize="40px"
android:autoSizeTextType="uniform"
android:fontFamily="@font/youre_so_cool_regular"
android:text="Cookies"
android:textAlignment="center"
tools:layout_editor_absoluteX="@dimen/_33sdp"
tools:layout_editor_absoluteY="@dimen/_369sdp" />