如何在ActionBar中定位菜单项?

时间:2015-07-14 16:40:48

标签: android android-activity android-actionbar android-menu

我的ActionBar目前包含徽标和一些文字。我通过夸大以下menu

来完成此操作
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    tools:context="com.example.sv_laptop.myapp.Register">
    <item android:id="@+id/action_settings"
        android:title="@string/signup"
        android:orderInCategory="1"
        app:showAsAction="always" />

    <item android:id="@+id/icon"
        android:title="Icon"
        android:icon="@drawable/icon"
        android:orderInCategory="0"
        app:showAsAction="always" />
</menu>

但是,它会同时显示ActionBar最右侧的两个项目。我想要实现的是标识位于最左侧,文本/标题位于中间位置。

有谁知道我怎么做到这一点?另一个问题是它显示的图像太小 - 如果有人可以给我一个关于如何扩展它的演练,我会非常欣赏它。

这就是我如何夸大菜单

public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater mi = getMenuInflater();
    mi.inflate(R.menu.menu_register_name, menu);
    return true;
}

非常感谢任何帮助!

编辑:

action_bar_layout

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/icon"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Sign Up"/>

问题是现在徽标显示在中间,文本显示在最右边。当我将paddingRight提供给徽标(ImageView)时,文本会消失,但它会向右移动。如果我在文本中添加paddingRight,它会再次消失。我也尝试在LinearLayout中设置paddingRight并发生同样的事情。

1 个答案:

答案 0 :(得分:0)

您获得的行为是android的默认行为,但您所看到的是iOS的默认行为。

如果要实现这一点,则必须实现自定义xml。

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
getSupportActionBar().setCustomView(R.layout.actionbar);

在这里,您需要在布局中创建actionbar.xml并对其进行充气。