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】:

导入LayoutDirectionandroid: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 错误绑定的主要内容,如果未能解决你的问题,请参考以下文章

将数据绑定从 kotlin-android-extensions 替换为 kotlin-kapt

将 Kotlin 转换为 Java

如何将 java 库添加到 kotlin 本机

Java 已老,Kotlin 或将取而代之!

Java 已老,Kotlin 或将取而代之!

如何将 C# 代码转换为 Kotlin 由 Json 库组成