The*_*his 8 android android-layout android-studio android-databinding
如果布尔值为true,我希望能够设置填充值.问题是Android Studio无法解析布局,因为它认为2dp是一个值为2的小数,然后不知道如何处理p.我如何格式化它,以便它理解我的意思是2密度像素.
数据布局:
<data class=".ItemBinding">
<variable name="isGroupType" type="Boolean"/>
</data>
Run Code Online (Sandbox Code Playgroud)
查看布局(重要):
<android.support.v7.widget.AppCompatImageView
android:layout_width="64dp"
android:layout_height="64dp"
android:paddingBottom='@{isGroupType ? 2dp : 0dp}'
android:paddingTop='@{isGroupType ? 8dp : 0dp}'
android:paddingRight='@{isGroupType ? 2dp : 0dp}'
android:paddingLeft='@{isGroupType ? 2dp : 0dp}'/>
Run Code Online (Sandbox Code Playgroud)
Sar*_*tal 20
对于希望通过 DataBinding 设置边距的任何人,您还必须使用BindingAdapter:
@BindingAdapter("layoutMarginBottom")
fun setLayoutMarginBottom(view: View, dimen: Float) {
val layoutParams = view.layoutParams as MarginLayoutParams
layoutParams.bottomMargin = dimen.toInt()
view.layoutParams = layoutParams
}
Run Code Online (Sandbox Code Playgroud)
您的 xml 属性将如下所示:
app:layoutMarginBottom="@{someCondition ? @dimen/zero_dp : @dimen/twenty_dp}"
Run Code Online (Sandbox Code Playgroud)
Rav*_*avi 15
存储填充值dimen.xml并使用它.请保持习惯用""(双引号)写绑定字符串
android:paddingBottom="@{isGroupType ? @dimen/padding_normal : @dimen/padding_null}"
Run Code Online (Sandbox Code Playgroud)
等等其他填充也.
| 归档时间: |
|
| 查看次数: |
6426 次 |
| 最近记录: |