我遇到了一个简单的问题,我知道我做错了一些小错误,我的问题是当我在 MainActivity 中使用 set Toolbar 时,当我试图一次在 fragment 中添加 optionMenu 时,我的工具栏的子组件(RelativeLayout in我的情况)尺寸改变了..
这是我的代码:
<?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>
fragment :
@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 设置在工具的适当中心,如您在第一张图片中看到的那样。
最佳答案
试试这个
<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
,这样您的代码就可以正常工作了。
关于android - 带有 onOptionmenu 项的自定义组件工具栏 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43735960/