我正在使用设计支持库的CollapsingToolbarLayout。我的问题是我无法使工具栏中的菜单操作图标膨胀。我使用以下代码创建CollapsingToolbarLayout。
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="240dp">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginBottom="32dp"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:id="@+id/profile_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax" />
<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/ThemeOverlay.AppCompat.Light" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
在Fragment中我使用
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_emp_details, menu);
super.onCreateOptionsMenu(menu,inflater);
}
和setHasOptionsMenu(true);
答案 0 :(得分:10)
有两种方法可以做到:
首先,您需要告诉Activity
Toolbar
您使用的Action Bar
是setSupportActionBar(toolbar)
使用:Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
toolbar.inflateMenu(R.menu.your_menu_items);
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
TODO: Write your logic here
}
});
否则(我推荐):
java.lang.NullPointerException
答案 1 :(得分:4)
我相信当您说“工具栏中的操作图标”时,您的意思是工具栏左侧的UP
操作。
如果您指的是带有3点图标的右侧菜单,@ Janhavi答案是正确的。如果您的意思是左侧的UP
图标,请阅读以下内容:
您需要在扩充布局后在工具栏上对其进行配置,如下面的代码:
@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// inflate your view normally
View root = inflater.inflate(R.layout.my_layout, container, false);
// configure your views
Toolbar toolbar = (Toolbar)root.findViewById(R.id.toolbar);
toolbar.setNavigationIcon(R.drawable.icon);
toolbar.setNavigationOnClickListener(new View.OnClickListener(){
@Override public void onClick(View v){
// TODO: code your UP navigation here
// probably: getFragmentManager().popBackStack ?
}
});
// return the view
return root;
}
您可以从此处下载的图标:https://www.google.com/design/icons/