带有onOptionmenu项的自定义组件工具栏片段

时间:2017-05-02 10:45:00

标签: android relativelayout toolbar

我遇到了一个简单的问题而且我知道我正在做一些小错误的问题,我的问题是当我在MainActivity中使用set Toolbar时以及当我尝试在片段中一次添加optionMenu时我的工具栏的孩子组件(在我的情况下为RelativeLayout)大小已更改..

这是我的代码:

<?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设置在第一张图片中可以看到的正确的中心位置..

2 个答案:

答案 0 :(得分:3)

试试这个

        <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并在ImageView中再添加一个RelativeLayout,您的代码也可以使用。

答案 1 :(得分:0)

您可以向工具栏menu添加额外的ImageView,而不是使用选项RelativeLayout,并为您的个人资料图标右对齐。

以下是一个例子:

<android.support.v7.widget.Toolbar
    android:id="@+id/admin_toolbar"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:background="@color/colorPrimaryDark"
    app:contentInsetStart="0dp">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/colorPrimaryDark">


        <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="100dp"
            android:layout_height="match_parent"
            android:layout_centerHorizontal="true"
            android:scaleType="fitCenter"
            android:src="@mipmap/ic_launcher" />

        <ImageView
            android:id="@+id/profile"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:layout_alignParentRight="true"
            android:layout_centerHorizontal="true"
            android:scaleType="fitCenter"
            android:src="@mipmap/ic_launcher" />

    </RelativeLayout>

</android.support.v7.widget.Toolbar>