如何将膨胀的自定义视图与工具栏中的其余菜单项对齐

时间:2016-05-12 16:19:00

标签: android android-toolbar

我真的不知道怎么放这个,但我想要的是一个工具栏(动作栏),如下面的WhatsApp风格。

The style I want

The style I have managed to develop so far

与此同时,我使用了Android工具栏并对自定义视图(包含购物车按钮)进行了充气,​​并使用 setCustomView()方法添加了它。我尝试调整 TextView textSize 属性,但即使是最合理的大小也不会将 TextView 的其余部分对齐工具栏菜单项。有关如何做到这一点的任何帮助?或者有不同的方法吗?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,我建议采用不同的方法,您可以将工具栏设置为SupportActionBar,并像在普通actionBar中那样添加自定义图标

  1. 将工具栏设置为SupportActionBar
  2. 离。

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    
    1. 像对普通actionBar一样创建菜单文件
    2. 离。

       <menu xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:app="http://schemas.android.com/apk/res-auto">
      
          <item
              android:id="@+id/action1"
              android:orderInCategory="100"
              android:title="CUSTOM TITTLE"
              android:icon="@drawable/custom_icon1"
              app:showAsAction="always" />
      
          <item
              android:id="@+id/action2"
              android:orderInCategory="100"
               android:title="CUSTOM TITTLE"
              android:icon="@drawable/custom_icon2"
              app:showAsAction="ifRoom"  />
      
         </menu>
      
      1. 最后使用onCreateOptionsMenu和onOptionsItemSelected完成设置。
      2. 离。

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
        
            getMenuInflater().inflate(R.menu.custom_menu, menu);
        
            .....
        
            return true;
        }
        
         @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            switch (item.getItemId()) {
                case R.id.action_custom_view:
        
                    .....Your code.....
        
                    break;
                case android.R.id.action_custom_view2:
        
                     .....Your code.....
        
                    break;
            }
        
            return false;
        
        }