我在具有2列的GridLayout中具有单个Image的以下ImageView。但是它在中间增加了双边距(因为两者都有marginLeft和marginRight)。我该如何预防?
这是xml:
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:adjustViewBounds="true"
android:scaleType="fitXY"
app:srcCompat="@drawable/default_image" />
答案 0 :(得分:0)
您可以简单地在子级和RecyclerView本身之间拆分左右边距值。
例如,如果您打算在左侧和右侧分别设置8dp边距和在中间设置8dp,则将4dp左侧和右侧边距设置为childs布局,将4dp设置为RecyclerView布局。
如果您有多行,则类似的技术也可以应用于顶部和底部边距。
您的子ImageView布局:
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:adjustViewBounds="true"
android:scaleType="fitXY"
app:srcCompat="@drawable/default_image" />
您的RecylerView网格布局:
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="4dp"
app:layoutManager="android.support.v7.widget.GridLayoutManager" />
答案 1 :(得分:0)
您只需将代码替换为以下代码之一即可:
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:adjustViewBounds="true"
android:scaleType="fitXY"
app:srcCompat="@drawable/default_image" />
答案 2 :(得分:0)
使用RecyclerView的addItemDecoration(ItemDecoration装饰)很方便。它比xml更好。