所以,这应该是非常基本的,但我是 Kotlin 的新手。所以我基本上有以下ImageView
观点RelativeLayout
。
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:srcCompat="@drawable/moon_0"
android:id="@+id/imagen_luna"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true" />
问题是在某些情况下,这ImageView
可能会与另一个元素在视觉上发生碰撞,所以我必须修改marginStart
和marginEnd
属性。我在一些教程中看到,首先我必须获得当前的布局边距或类似的东西,但我不知道为什么这么复杂,在 Swift 中我只是修改每个边距的属性。
有没有一种简单的方法来实现这一点,或者如果没有最简单的方法来做到这一点?
更新 - 在适配器中添加了代码
这是我在适配器中为此特定的代码ImageView
:
override fun onBindViewHolder(holder: AnoViewHolder, position: Int) {
...
if(respec.nombre_icono_signo != "" && respec.imagen_luna != "") {
val layoutParamsLuna = holder.view?.imagen_luna.layoutParams as RelativeLayout.LayoutParams
layoutParamsLuna.setMargins(1, 8, 15, 8)
holder.view?.imagen_luna.layoutParams = layoutParamsLuna
}
...
}
问题是这什么也没做,我的理论是 setMargins 函数接受左右边距,而不是开始和结束边距。