我有Activity
基于滚动Activity
模板。 AppBar
正如预期的那样对滚动行为起作用,但它没有显示它的内容(向上导航,选项菜单,标题)。
以下摘要是最少的摘录。
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上交叉检查了我的代码开发人员指南,并使用“滚动活动”创建了一个新的应用程序并比较了代码。但我找不到任何领先优势。
正如评论中指出的那样,问题似乎与约束力有关。如果布局文件中没有变量声明,并且ContactEditActivity
中的相应绑定部分会按预期呈现。
我将绑定部分添加到ContactEditActivity
的最小版本。