如何使Android Studio的tools:listitem在merge标签上起作用?

时间:2019-05-14 23:19:02

标签: android xml android-layout

我正在Android上设计一个非常复杂的表单,并且在片段中使用了include。我基本上有这个:

include_form.xml

<merge xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  tools:orientation="vertical"
  tools:parentTag="android.widget.LinearLayout">

    ...

    <Spinner
      android:id="@+id/desired_time_input"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:prompt="@string/time_desired_field"
      android:spinnerMode="dialog"
      tools:listitem="@layout/item_spinner_simple" />

    ...

</merge>

可以在Android Studio的预览中完美呈现。但是,将其包含在另一个文件中时,如下所示:

fragment_signup.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="vertical">

  ...

  <include
    layout="@layout/include_form"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

  ...

</LinearLayout>

这可以很好地在设备或模拟器上呈现,但是在Android Studio的预览中无法正确呈现:它基本上会忽略tools:listitem上的Spinner属性。

这对于其他组件(例如RecyclerView)也可以正常使用。有人有想法吗,还是我偶然发现了一个错误?谢谢!

**编辑1 **

试图将tools:listitem="@layout/item_spinner_simple"添加到include标记中,但这没用。

**编辑2 **

这似乎确实是一个错误。我创建了一个错误报告: https://issuetracker.google.com/issues/132686264

0 个答案:

没有答案