我试图通过传递数字键(即1-9)和数字下的一些字母(例如“ abc”,“ def”等)来重用键盘按钮。由于某些原因,我无法正常工作。在下面,您可以查看代码和我完成的所有操作。我已经在互联网上阅读了所有内容,但无法正常工作。
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="mainText"
type="String"/>
<variable
name="subtitleText"
type="String"/>
</data>
<FrameLayout android:layout_height="85dp"
android:layout_width="85dp"
android:background="@drawable/button_bg_round">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@{mainText}"
android:textSize="44sp"
android:fontFamily="@font/latoregular"
android:gravity="center"
android:paddingBottom="10dp"
android:paddingRight="2dp"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@{subtitleText}"
android:textSize="15sp"
android:fontFamily="@font/latoregular"
android:gravity="center"
android:paddingTop="50dp"
android:paddingRight="2dp"
/>
</FrameLayout>
</layout>
我在这里重用该组件
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
xmlns:bind="http://schemas.android.com/apk/res-auto">
...
<include
android:id="@+id/button_1"
layout="@layout/keypad_layout"
app:mainText="@{@string/keyboard_1}"
bind:mainText ="@{@string/keyboard_1}"
app:subtitleText="@{@string/keyboard_1_subtitle}"
/>
...
</layout>
最后,我添加了在build.gradle中启用的数据绑定。
答案 0 :(得分:0)
我在这里找到了答案-Include layout with custom attributes
为了使其起作用,您需要记住必须启用数据绑定,并且必须通过DataBindingUtil.inflate对其进行膨胀,而不仅仅是常规视图膨胀。但是,是的。