Android Material Design工具栏自定义操作菜单未正确对齐

Shi*_*a S 6 android material-design android-toolbar

我刚刚在我的应用程序中采用了Material Design Toolbar.我遵循了克里斯巴内斯指导博客得到它的前棒棒糖设备的工作.然而,似乎我不能让我的动作菜单项,垂直居中.

以下是Kitkat设备上的外观截图. Kitkat截图

如您所见,标题和菜单图标未对齐.某种方式标题正确对齐但不是动作菜单和导航图标.相反,它们与底部对齐.

这是我的工具栏布局

<android.support.v7.widget.Toolbar
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/toolbar"
     android:layout_width="match_parent"
     android:layout_height="?android:attr/actionBarSize"
     android:background="?attr/colorPrimaryDark"/>
Run Code Online (Sandbox Code Playgroud)

我尝试将android:gravity放在布局上,但它没有做任何事情.

这是我的抽象活动代码,它将工具栏指定为操作栏

public abstract class BaseMaterialActivity extends ActionBarActivity {

private Toolbar toolbar;

public abstract int getLayoutResources();

public abstract boolean isShowActionBar();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(getLayoutResources());
    if (isShowActionBar()) {
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        if (toolbar != null) {
            setSupportActionBar(toolbar);
            toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_drawer));
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            getSupportActionBar().setDisplayShowTitleEnabled(true);
            getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_nav_back);
        }
    }
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    }
}

public Toolbar getToolbar() {
    return toolbar;
}
Run Code Online (Sandbox Code Playgroud)

}

这是我的menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

     <item
         android:id="@+id/action_filter"
         android:icon="@drawable/ic_filter"
         android:orderInCategory="1"
         app:showAsAction="always|withText"
         android:title="@string/filters" />

     <item
         android:id="@+id/action_cart"
         app:actionLayout="@layout/action_cart_icon_layout"
         android:orderInCategory="2"
         app:showAsAction="always"
         android:title="@string/cart" />


 </menu>
Run Code Online (Sandbox Code Playgroud)

任何有关如何使动作菜单垂直居中的帮助或指针都将受到赞赏.谢谢!

Eug*_*nec 11

代替

 android:layout_height="?android:attr/actionBarSize"
Run Code Online (Sandbox Code Playgroud)

 android:layout_height="?actionBarSize"
Run Code Online (Sandbox Code Playgroud)

第二个是由AppCompat主题定义的正确高度(默认为56dp,正常横向为48dp,平板电脑为64dp).

注意:您编写的内容仅适用于Android 5.0.