如何在 xml 中配置 <include> 布局

How to configure an <include> layout in xml

我在我的主机布局中包含了一个带有 EditText 的布局。包含布局中 EditText 的 imeOptions 应该可以从我的主机布局中配置。因此我在包含布局中添加了一个变量和钩子。

我的问题是在主机布局中我想将实际标志设置为这样的值

app:customImeOptions="@{actionNext}"

通过这样做,我收到错误“找不到标识符 'actionNext'”。唯一有效的是设置整数值。

app:customImeOptions="@{0x00000006}"

包含布局

<data>
    ...
    
    <variable
        name="customImeOptions"
        type="Int"/>

</data>

<ConstraintLayout
    ...
    ...>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:imeOptions="@{customImeOptions}/>

</ConstraintLayout>

主机布局 <约束布局 ... ...>

    <include
        layout="@layout/include_layout"
        app:customImeOptions="@{0x00000006}" />

要在主机布局中设置标志,必须在主机布局中导入相应的 class。在这种情况下,将此导入添加到主机布局的数据部分

<data>

    <import type="android.view.inputmethod.EditorInfo" />

</data>

既然主机布局知道了这一点class,就可以像这样设置标志而不是 int 值

<include
        layout="@layout/include_layout"
        app:customImeOptions="@{EditorInfo.IME_ACTION_NEXT}" />