toolbar 总结和踩过的坑 , 为toolbar设置字体
来源:互联网 发布:kingkong1024灯光编程 编辑:程序博客网 时间:2024/06/05 00:42
toolbar. setXXX();getMainActivity().setSupportActionBar(toolbar);
会抹掉toolbar之前设置的navigation的点击事件 以及setnavigationicon, setoverflow等方法
要小心 这些方法 必须在前面写 ,最好只写一次
格式应该为toolbar. setXXX();
Toolbar一些比较常用的办法:
修改导航图标:
toolbar.setNavigationIcon(资源文件);
修改menu图标:
toolbar.setOverflowIcon(getResources().getDrawable(R.drawable.ic_toolbar_more));
设置导航事件
toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getActivity().onBackPressed(); } });
设置菜单事件
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem menuItem) { }
修改toolbar名字
setSupportActionBar(toolbar); (这个代码必须写在点击事件之前 ) getSupportActionBar().setTitle(null); //noinspection ConstantConditions toolbar.setTitle(com.music.gramophone.R.string.action_tag_editor);
为Toolbar设置字体 ,可以先获取Textview, 在对改textview设置字体或者其他特效
public static TextView getToolbarTitleView(AppCompatActivity activity, Toolbar toolbar) { ActionBar actionBar = activity.getSupportActionBar(); CharSequence actionbarTitle = null; if (actionBar != null) actionbarTitle = actionBar.getTitle(); actionbarTitle = TextUtils.isEmpty(actionbarTitle) ? toolbar.getTitle() : actionbarTitle; if (TextUtils.isEmpty(actionbarTitle)) return null; // can't find if title not set for (int i = 0; i < toolbar.getChildCount(); i++) { View v = toolbar.getChildAt(i); if (v != null && v instanceof TextView) { TextView t = (TextView) v; CharSequence title = t.getText(); if (!TextUtils.isEmpty(title) && actionbarTitle.equals(title) && t.getId() == View.NO_ID) { //Toolbar does not assign id to views with layout params SYSTEM, hence getId() == View.NO_ID //in same manner subtitle TextView can be obtained. return t; } } } return null; }
影响Toolbar外观和样式的几个因素
1 大小: 如果不可见 先设置高度为wrap_content2 自定义样式3 xml或者java代码4 系统样式 这个也是最隐秘最难发现的地方 以下样式会对toolbar本身起作用<!--<stylename="Base.Widget.AppCompat.Toolbar"parent="android:Widget"><itemname="titleTextAppearance">@style/TextAppearance.Widget.AppCompat.Toolbar.Title</item><itemname="subtitleTextAppearance">@style/TextAppearance.Widget.AppCompat.Toolbar.Subtitle</item><itemname="android:minHeight">?attr/actionBarSize</item><itemna<!-- <style name="Base.Widget.AppCompat.Toolbar" parent="android:Widget"> <item name="titleTextAppearance">@style/TextAppearance.Widget.AppCompat.Toolbar.Title</item> <item name="subtitleTextAppearance"> @style/TextAppearance.Widget.AppCompat.Toolbar.Subtitle </item> <item name="android:minHeight">?attr/actionBarSize</item> <item name="titleMargin">40dp</item> <item name="maxButtonHeight">56dp</item> <item name="buttonGravity">top</item> <item name="collapseIcon">?attr/homeAsUpIndicator</item> <item name="collapseContentDescription">@string/abc_toolbar_collapse_description</item> <item name="contentInsetStart">16dp</item> <item name="contentInsetStartWithNavigation">72dp</item> <item name="android:paddingLeft">0dp</item> <item name="android:paddingRight">0dp</item> </style>-->me="titleMargin">40dp</item><itemname="maxButtonHeight">56dp</item><itemname="buttonGravity">top</item><itemname="collapseIcon">?attr/homeAsUpIndicator</item><itemname="collapseContentDescription">@string/abc_toolbar_collapse_description</item><itemname="contentInsetStart">16dp</item><itemname="contentInsetStartWithNavigation">72dp</item><itemname="android:paddingLeft">0dp</item><itemname="android:paddingRight">0dp</item></style>-->会对系统的Toolbar 控件产生影响
在toolbar 的使用过程中发现如果其他控件挡住了他点击事件不会生效, 所以建议toolbar放在最顶层.(写在最下方) 因为toolbar一般都在最顶层. ,除了少数需要全屏后返回toolbar的特效
http://www.jianshu.com/p/6244687137d2
阅读全文
0 0
- toolbar 总结和踩过的坑 , 为toolbar设置字体
- ToolBar踩过的坑
- Toolbar使用和踩过得一些属性不能设置的坑
- Toolbar使用之踩过的坑
- pb - toolbar - 设置字体
- ToolBar下面放置一个TabLayout踩过的坑
- toolbar使用踩过的坑(注意点)
- Toolbar设置详解----掉坑总结
- ToolBar的样式设置
- ToolBar回退键的调用和设置颜色
- ToolBar和SearchView的使用总结
- android:ToolBar和SearchView的使用总结
- ToolBar和SearchView的使用总结
- Toolbar的使用总结
- 自定义toolbar和原生toolbar的比较
- iOS 修改toolbar里面文字的字体和大小
- 为Toolbar左上角的返回箭头设置点击监听事件
- Toolbar总结
- 欢迎使用CSDN-markdown编辑器
- 【PAT】【Advanced Level】1070. Mooncake (25)
- tcl语法
- java之String不可变思考
- SpringMVC(一)HelloWorld
- toolbar 总结和踩过的坑 , 为toolbar设置字体
- js实现map
- 安卓Socket使用之客户端
- UGUI button加监听方法、带参数与不带参数
- MATLAB利用散点进行函数曲线拟合
- Spring的事物
- 7-3 判断上三角矩阵
- 如何让PopupWindow 显示在屏幕的中央
- 【PAT】【Advanced Level】1071. Speech Patterns (25)