android tool使用教程,Android--Toolbar基本使用

谷歌最初推出Actionbar想用于安卓app统一导航行样式,但由于Actionbar自定义性不高,又不是很好看(很丑),民间开发出了另一种控件并被谷歌收入v7包下,它就是Toolbar

使用Toolbar有几点要注意的(这边使用的v7包的Toolbar,由于继承Activity已经过时,但如果实在想继承Activity的话,使用v4包下的Toolbar):

1.App主题使用NoActionBar

2.Activity需要继承AppCompatActivity

3.在代码中调用setSupportActionBar方法替换Actionbar

在xml中使用Toolbar:

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

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MainActivity">

android:id="@+id/tb_demo"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@color/colorPrimary">

在代码中设置属性,也可以在xml中使用app:属性名 直接设置

public class MainActivity extends AppCompatActivity {

private Toolbar toolbar;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

toolbar = findViewById(R.id.tb_demo);

toolbar.setTitle("主标题");

toolbar.setSubtitle("副标题");

//设置左侧导航图标

toolbar.setNavigationIcon(R.drawable.ic_arrow_back_black_24dp);

//设置导航点击监听

toolbar.setNavigationOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

}

});

setSupportActionBar(toolbar);

}

}

e131cb31a683

toolbar.jpg

和Actionbar相同,Toolbar也支持菜单栏,我们需要在xml中定义,用法和NavigationView的菜单一样

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

android:title="搜索"

app:showAsAction="always" />

android:title="其他"

app:showAsAction="never" />

android:title="设置"

app:showAsAction="ifRoom" />

其中app:showAsAction可以设置item的显示,always表示一直显示,never表示一直放入overflow中(右侧更多图标的按钮),ifRoom表示如果显示不下,则放入overflow中,定义好xml后,需要在Activity中改写onCreateOptionsMenu方法

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.menu, menu);

return super.onCreateOptionsMenu(menu);

}

和NavigationView源码中一样使用的getMenuInflater方法获取xml解析器,在这里可以绑定点击事件,也可以通过Toolbar的setOnMenuItemClickListener方法设置,效果:

e131cb31a683

带菜单的toolbar.jpg

e131cb31a683

点击右侧overflow的toolbar.jpg

弹框的样式可以通过Toolbar的setPopupTheme方法改变

还可以通过style设置Toolbar的字体颜色,如设置副标题颜色:

@color/colorPrimary

@color/colorPrimaryDark

@color/colorAccent

#ffa000

除此以外,Toolbar还有这些API

ToolBar API

collapseActionView()

折叠当前展开了行动视图。

showOverflowMenu()

从显示相关的菜单溢出项目。

dismissPopupMenus()

关闭所有当前显示弹出式菜单,包括溢出或子菜单。

isOverflowMenuShowing()

检查溢出菜单是否正在显示。

inflateMenu(int resId)

膨胀的菜单资源到这个工具栏。

hideOverflowMenu()

隐藏关联菜单溢出项目。

setContentInsetEndWithActions(int insetEndWithActions)

设置开始的内容插入时操作按钮都存在使用。

setContentInsetStartWithNavigation(int insetStartWithNavigation)

设置启动内容插入时,导航按钮存在使用。

setContentInsetsRelative(int contentInsetStart, int contentInsetEnd)

设置此相对布局方向工具栏的内容插图。

setLogo(Drawable drawable)

设置一个Log图片。

setLogoDescription(int resId)

设置Log的说明。

setNavigationContentDescription(CharSequence description)

如果存在设置导航按钮的内容。

setNavigationOnClickListener(View.OnClickListener listener)

设置一个侦听器来导航事件

setOverflowIcon(Drawable icon)

设置图标使用的溢出按钮。

setSubtitle(CharSequence subtitle)

设置此工具栏的字幕。

setSubtitleTextAppearance(Context context, int resId)

设置文本颜色,大小,样式,颜色提示,并突出显示颜色从指定TextAppearance资源。

setTitleMargin(int start, int top, int end, int bottom)

设置标题边距。

setTitleTextAppearance(Context context, int resId)

设置文本颜色,大小,样式,颜色提示,并突出显示颜色从指定TextAppearance资源。

setTitleTextColor(int color)

设置标题的文本颜色,如果存在的话

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值