单个活动不显示AppBar内容

时间:2018-03-26 18:16:05

标签: android android-layout kotlin android-toolbar android-appbarlayout

我有Activity基于滚动Activity模板。 AppBar正如预期的那样对滚动行为起作用,但它没有显示它的内容(向上导航,选项菜单,标题)。 Screenshot of the activity.

以下摘要是最少的摘录。

ContactEditActivity

class ContactEditActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_contact_edit)
    setSupportActionBar(toolbar)
    supportActionBar?.setDisplayHomeAsUpEnabled(true)

    val binding = DataBindingUtil.setContentView<ActivityContactEditBinding>(
        this,
        R.layout.activity_contact_edit
    )

    binding.contact = contact
    binding.executePendingBindings()
}

override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
    R.id.action_settings -> {
        true
    }
    R.id.action_save -> {
        true
    }
    else -> {
        super.onOptionsItemSelected(item)
    }
}

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
    menuInflater.inflate(R.menu.menu_contact_edit, menu)
    return true
}
}

activity_contact_edit.xml

<?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"
android:fitsSystemWindows="true"
tools:context="(...).activities.ContactEditActivity">
<data>
    <variable
        name="contact"
        type="(...).models.Contact" />
</data>
<android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="@dimen/app_bar_height"
        android:fitsSystemWindows="true"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:toolbarId="@+id/toolbar">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/AppTheme.PopupOverlay" />

        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_contact_edit"
        app:contact="@={contact}"/>

</android.support.design.widget.CoordinatorLayout>
</layout>

menu_contact_edit.xml

<menu 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"
tools:context=".activities.ContactEditActivity">
<item
    android:id="@+id/action_save"
    android:title="@string/action_save"
    app:showAsAction="ifRoom"/>
<item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:title="@string/action_settings"
    app:showAsAction="never" />
</menu>

AndroidManifest.xml(摘录):

    <activity
        android:name=".activities.ContactEditActivity"
        android:label="@string/title_activity_contact_edit"
        android:parentActivityName=".activities.ContactActivity"
        android:theme="@style/AppTheme.NoActionBar"
        android:windowSoftInputMode="adjustPan">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="(...).activities.ContactActivity" />
    </activity>

我已经在AppBars上交叉检查了我的代码开发人员指南,并使用“滚动活动”创建了一个新的应用程序并比较了代码。但我找不到任何领先优势。

更新1

正如评论中指出的那样,问题似乎与约束力有关。如果布局文件中没有变量声明,并且ContactEditActivity中的相应绑定部分会按预期呈现。

我将绑定部分添加到ContactEditActivity的最小版本。

0 个答案:

没有答案