具有onOption菜单项的自定义组件工具栏片段 [英] custom component toolbar fragment with onOptionmenu items
问题描述
我被困在一个简单的问题上,我知道我在做一些小错误,我的问题是当我在MainActivity中使用set Toolbar时,以及当我一次尝试在片段中添加optionMenu时,我的ToolBar的子组件(RelativeLayout在我的情况)大小已更改..
I am stuck simple issue and i know i am doing something minor wrong , My issue is when i am using set Toolbar in MainActivity and after when i am trying to add optionMenu in fragment at a time my toolBar's child component(RelativeLayout in my case) size changed..
这是我的代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/admin_toolbar"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/button_blue"
app:contentInsetStart="0dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/colorPrimaryDark">
<TextView
android:id="@+id/admin_toolbar_title"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal|center_vertical"
android:text="@string/zenith"
android:textColor="@color/white"
android:visibility="gone" />
<ImageView
android:id="@+id/admin_toolbar_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:padding="10dp"
android:src="@drawable/ic_drawer_icon" />
<ImageView
android:id="@+id/adminhome_cust_titleimage"
android:layout_width="@dimen/_100sdp"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:scaleType="fitCenter"
android:src="@drawable/small_app_logo" />
</RelativeLayout>
</android.support.v7.widget.Toolbar>
<include layout="@layout/content_admin_main" />
</LinearLayout>
片段:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.fragment_admin_home, container, false);
utils = new Utils(getActivity());
calendarView = (CompactCalendarView) view.findViewById(R.id.admin_compactcalendar_view);
setHasOptionsMenu(true);
toolbar = (Toolbar) getActivity().findViewById(R.id.admin_toolbar);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.adminhome_profilelogo, menu);
}
如何在第一张图片中看到的那样,将我的imageView设置在适当的工具中心.
How can i set my imageView in proper center of toolas you can see in first image..
推荐答案
尝试一下
<ImageView
android:id="@+id/admin_toolbar_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:padding="10dp"
android:src="@drawable/ic_drawer_icon" />
<ImageView
android:id="@+id/adminhome_cust_titleimage"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_toLeftOf="@+id/admin_toolbar_icon"
android:layout_alignParentRight="true"
android:scaleType="fitCenter"
android:src="@drawable/small_app_logo" />
但是无论如何,如果您要添加更多菜单元素,您的图标将从主页按钮的结尾和菜单的开始居中.另外,您可以删除setHasOptionsMenu
并在RelativeLayout
中再添加一个ImageView
,您的代码即可使用.
But anyway if you will add more menu elements your icon will be centered from end of home button and start of menu. Also you can remove setHasOptionsMenu
and add one more ImageView
in your RelativeLayout
and your code will works.
这篇关于具有onOption菜单项的自定义组件工具栏片段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!