我试图在活动中显示工具栏以及菜单项。这可以正常工作,直到我将数据指数添加到XML为止。之后,我根本无法使用setSupportactionbar(工具栏(。这是我的xml文件 activity_single_product.xml
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<variable name="product"
type="com.sales.models.ProductModel"/>
<variable name="glide" type="com.bumptech.glide.Glide" />
</data>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_view_single_product"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.sales.SingleProductActivity"
android:background="@color/colorPrimary">
<LinearLayout
android:id="@+id/container_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include
android:id="@+id/tool"
layout="@layout/toolbar" />
<include
android:id="@+id/search_layout"
layout="@layout/search_layout" />
<View
android:layout_width="match_parent"
android:layout_height="5dp"
android:background="@drawable/drop_shadow_toolbar" />
</LinearLayout> <!-- Toolbar & Search bar-->
</RelativeLayout>
</layout>
活动:
private void initViews() {
binding = DataBindingUtil.setContentView(this, R.layout.activity_single_product); // ActivitySingleProductBinding
setSupportActionBar(binding.tool.toolbar);
binding.setProduct(product);
}
我遵循了stackoverflow答案。这无济于事。谁能建议?
我发现并解决了问题。问题在于工具栏布局。我包括
<include
android:id="@+id/tool"
layout="@layout/toolbar" />
,工具栏布局为
<android.support.v7.widget.Toolbar
xmlns:local="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:layout_marginTop="25dp"
android:background="@null"
android:titleTextColor="@color/lightGrey2"
local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
local:popupTheme="@style/ThemeOverlay.AppCompat.Light"
android:contentInsetLeft="10dp"
android:contentInsetRight="10dp"
android:contentInsetStart="10dp"
android:padding="0dp"
app:contentInsetLeft="10dp"
app:contentInsetRight="10dp"
app:contentInsetStart="10dp"/>
问题是,我没有包含适当的标签来包装工具栏。后来我更改了它,新的工具栏布局为
<layout
xmlns:local="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/tools">
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:layout_marginTop="25dp"
android:background="@null"
android:titleTextColor="@color/lightGrey2"
local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
local:popupTheme="@style/ThemeOverlay.AppCompat.Light"
android:contentInsetLeft="10dp"
android:contentInsetRight="10dp"
android:contentInsetStart="10dp"
android:padding="0dp"
app:contentInsetLeft="10dp"
app:contentInsetRight="10dp"
app:contentInsetStart="10dp"/></layout>
这解决了问题。