300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > android tool使用教程 Android--Toolbar基本使用

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

时间:2023-07-04 17:44:15

相关推荐

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="/apk/res-auto"

xmlns:tools="/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);

}

}

toolbar.jpg

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

xmlns:app="/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方法设置,效果:

带菜单的toolbar.jpg

点击右侧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)

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。