Android Toolbar控件

1. Toolbar类

Toolbar是替代ActionBar的产物,低版本可以使用v7兼容包,使用Theme.AppCompat主题,并添加配置。

false
true

2. Toolbar配置

主要属性,

  • navigationIcon,设置导航栏图标
  • logo,设置logo
  • title,设置标题
  • subtitle,设置副标题
  • background,设置背景

Toolbar还可以设置自定义子视图,



    


3. 添加菜单

Activity需要继承AppCompatActivity,并调用setSupportActionBar(Toolbar)方法。

public clas ToolbarActivity extends AppCompatActivity {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_design_toolbar);

        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
    }
}

menu目录下添加menu_toolbar.xml文件


    
    
    


在代码中添加Menu,并设置点击事件

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_toolbar, menu);

    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == R.id.item_faq) {
        Toast.makeText(this, "Faq", Toast.LENGTH_SHORT).show();
    } else if (item.getItemId() == R.id.item_add) {
        Toast.makeText(this, "Add", Toast.LENGTH_SHORT).show();
    } else if (item.getItemId() == R.id.item_setting) {
        Toast.makeText(this, "Setting", Toast.LENGTH_SHORT).show();
    }
    return true;
}

效果如下
Android Toolbar控件_第1张图片

4. 代码设置

Toolbar也提供了很多set方法,

  • setNavigationIcon(int resId),设置导航栏图标
  • setNavigationOnClickListener(OnClickListener listener),设置导航栏监听事件
  • setLogo(int resId),设置logo
  • setTitle(int resId),设置标题
  • setTitle(CharSequence title),设置标题
  • setSubtitle(int resId),设置副标题
  • setSubtitle(CharSequence subtitle),设置副标题
  • setBackgroundColor(int color),设置背景
  • setBackgroundResource(int resid),设置背景
  • setOverflowIcon(Drawable icon),设置菜单按钮样式

效果如下
Android Toolbar控件_第2张图片

5. 修改菜单样式

设置ToolbarpopupTheme属性,修改下拉框样式

app:popupTheme="@style/AppTheme.OverFlowMenu"

style.xml中,添加AppTheme.OverFlowMenu


相关文章
Android Snackbar控件
Android FloatingActionButton控件
Android Toolbar控件
Android AppBarLayout控件
Android CollapsingToolbarLayout控件
Android CardView控件
Android SlidingPaneLayout和DrawerLayout控件
Android NavigationView控件
Android TabLayout控件

你可能感兴趣的:(Android,Material,Design)