【问题标题】:Passing string to included layout via data binding not working通过数据绑定将字符串传递给包含的布局不起作用
【发布时间】:2018-09-21 23:59:29
【问题描述】:

我正在尝试使用 Android 数据绑定功能将一个简单的字符串从我的主布局传递给一个布局。它编译得很好,但是传递给包含的值实际上并没有被传递。即 - 它没有出现在我的布局中。

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools">

    <data>
        <variable name="mytitle" type="java.lang.String"/>
    </data>

    <android.support.constraint.ConstraintLayout
        android:background="@color/black_background"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

 <include
            android:id="@+id/include1"
            layout="@layout/mylayout"
            app:mytitle="@{@string/categories}"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"/>

    </android.support.constraint.ConstraintLayout>
</layout>

我的包含布局是:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <data>
        <variable name="mytitle" type="java.lang.String"/>
    </data>

<android.support.constraint.ConstraintLayout
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:background="@color/black_background"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/category_header_textview"
        style="@style/WhiteText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@{mytitle}"
        app:layout_constraintStart_toStartOf="parent" />

</android.support.constraint.ConstraintLayout>
</layout>

【问题讨论】:

    标签: android android-layout android-databinding


    【解决方案1】:

    好的。弄清楚了。在这里为其他人发帖。 我缺少的东西实际上是使用 DataBindingUtil 来设置内容视图。

    将以下内容添加到您的 onCreate() 中:

    DataBindingUtil.setContentView(this, R.layout.mylayout);
    

    【讨论】:

    • 太棒了:D,显然数据绑定不适用于直接 setContentView()。
    猜你喜欢
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 2020-02-01
    • 2019-10-21
    • 2016-03-31
    • 1970-01-01
    相关资源
    最近更新 更多