如何将菜单项设置到操作栏的左侧?

Man*_*wal 8 android menu menuitem android-actionbar

我正在创建一个具有操作栏的android应用程序,操作栏包含两侧的菜单项.所以,我需要在左侧添加一个菜单项,在操作栏的右侧添加一个菜单项.

为此,我创建了一个自定义布局并将其设置为操作栏.如下图所示

动作栏有自定义布局

但我只想在左侧和右侧的位置有菜单项,另一个屏幕截图显示带有菜单项的操作栏

带有菜单项的操作栏

在此操作栏包含菜单项.所以,我只想把加号按钮菜单项放在左侧,与第一个屏幕截图相同,但我不想使用自定义布局,

此外,我需要chnage操作栏标题的字体样式,并将其置于中心.

请帮我.我花了很多时间在这上面.

谢谢

hit*_*nnu 6

您可以直接将导航绘制添加到您的工具栏试试这个代码:

yourToolbar.setNavigationIcon("Resource id")

yourToolbar.setNavigationOnClickListener(new ClickListener(){})
Run Code Online (Sandbox Code Playgroud)


aas*_*sha 1

您必须为此创建一个自定义视图。您不能将选项菜单膨胀用于您的用例。

将 Activity 的样式设置为 Theme.AppCompat,并且不要在 Activity 或应用程序样式中使用 NoActionBar。

创建自定义菜单布局。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">
    <ImageButton android:src="@drawable/add"
                 android:background="?attr/actionBarItemBackground"
                 android:layout_width="?attr/actionBarSize"
                 android:layout_height="?attr/actionBarSize"
                 android:scaleType="centerInside"
                 android:id="@+id/action_add"
                 android:layout_alignParentLeft="true"
                 android:layout_alignParentTop="true"/>

    <TextView android:text="NewsFeed"
                 android:background="?attr/actionBarItemBackground"
                 android:layout_height="?attr/actionBarSize"
                 android:layout_width="wrap_content"
                 android:scaleType="centerInside"
                 android:id="@+id/text_appname"
                 android:textSize="30sp"
                 android:textStyle="bold"
                 android:layout_marginLeft="5dp"
                 android:textColor="#FFF"
                 android:paddingTop="5dp"
                 android:layout_toRightOf="@+id/action_add"
                 android:layout_alignParentTop="true"/>

    <ImageButton android:src="@drawable/search"
                 android:background="?attr/actionBarItemBackground"
                 android:layout_width="?attr/actionBarSize"
                 android:layout_height="?attr/actionBarSize"
                 android:scaleType="centerInside"
                 android:id="@+id/action_search"
                 android:layout_alignParentRight="true"
                 android:layout_alignParentTop="true"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

在您的活动 onCreate 中添加以下代码

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_mainfeed);
    ActionBar mActionBar = getSupportActionBar();
    mActionBar.setDisplayShowHomeEnabled(false);
    mActionBar.setDisplayShowTitleEnabled(false);
    LayoutInflater li = LayoutInflater.from(this);
    View customView = li.inflate(R.layout.custom_menu, null);
    mActionBar.setCustomView(customView);
    mActionBar.setDisplayShowCustomEnabled(true);
    ImageButton addContent = (ImageButton)    customView.findViewById(R.id.action_add);
    addContent.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // ...
        }
    });

    ImageButton search = (ImageButton) customView.findViewById(R.id.action_search);
    search.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // ...
        }
    });
}
Run Code Online (Sandbox Code Playgroud)