Kotlin - 将 layoutDirection 设置为 linearlayout 错误绑定
Posted
技术标签:
【中文标题】Kotlin - 将 layoutDirection 设置为 linearlayout 错误绑定【英文标题】:Kotlin - Set layoutDirection to linearlayout error binding 【发布时间】:2021-05-13 19:20:15 【问题描述】:我已经在 xml 中实现了数据绑定,我想将 layoutDirection 设置为我的线性布局,但它会导致如下错误。
这是我的代码
<LinearLayout
android:layout_
android:layout_
android:background="?attr/colorSecondaryVariant"
android:orientation="horizontal"
android:layoutDirection='@type.equalsIgnoreCase("sell") ? "rtl" : "ltr" '
android:baselineAligned="false"></Linearlayout>
这是错误
【问题讨论】:
发布完整的错误和完整的布局文件 我们需要传递 LayoutDirection,而不是将字符串传递给 android:layoutDirection 【参考方案1】:导入LayoutDirection
(android:layoutDirection
期待LayoutDirection
),而不是将字符串传递给布局方向。
<import type="android.util.LayoutDirection"/>
把 XML android:layoutDirection
改成这个
android:layoutDirection='@type.equalsIgnoreCase("sell") ? LayoutDirection.RTL : LayoutDirection.RTL '
【讨论】:
【参考方案2】:您可以在此用例中使用BindingAdapter
:
@BindingAdapter("changeLayoutDirection")
fun changeLayoutDirection(layout: LinearLayout, direction: String)
// Write your code here for direction change
在您的xml
中,添加以下内容:
<LinearLayout
android:layout_
android:layout_
android:background="?attr/colorSecondaryVariant"
android:orientation="horizontal"
changeLayoutDirection="@type"
android:baselineAligned="false"></Linearlayout>
【讨论】:
以上是关于Kotlin - 将 layoutDirection 设置为 linearlayout 错误绑定的主要内容,如果未能解决你的问题,请参考以下文章