没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
前言 ToolBar是Android 5.0推出的一个新的导航控件用于取代之前的ActionBar,由于其高度的可定制性、灵活性、具有Material Design风格等优点,越来越多的App也用上了ToolBar。 沉浸式状态栏是从android Kitkat(Android 4.4)开始出现的,它可以被设置成与APP顶部相同的颜色,这就使得切换APP时,整个界面就好似切换到了与APP相同的风格样式一样。 依赖包: Toolbar, implementation ‘androidx.appcompat:appcompat:1.1.0’ 沉浸式, implementation
资源推荐
资源详情
资源评论




格式:rar 资源大小:22.7MB




格式:pdf 资源大小:43.9KB 页数:1








格式:pdf 资源大小:45.2KB 页数:2










Android自定义自定义ToolBar并实现沉浸式的方法并实现沉浸式的方法
前言前言
ToolBar是Android 5.0推出的一个新的导航控件用于取代之前的ActionBar,由于其高度的可定制性、灵活性、具有
Material Design风格等优点,越来越多的App也用上了ToolBar。
沉浸式状态栏是从android Kitkat(Android 4.4)开始出现的,它可以被设置成与APP顶部相同的颜色,这就使得切换APP
时,整个界面就好似切换到了与APP相同的风格样式一样。
依赖包:依赖包:
Toolbar, implementation ‘androidx.appcompat:appcompat:1.1.0’
沉浸式, implementation ‘com.gyf.immersionbar:immersionbar:3.0.0’
1、自定义、自定义Toolbar步骤:步骤:
1)、定义 /values/styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="TextAppearance_TitleBar_Title" parent="TextAppearance.AppCompat.Toolbar.Title">
...
</style>
<style name="TextAppearance_TitleBar_subTitle" parent="TextAppearance.AppCompat.Toolbar.Subtitle">
....
</style>
</resources>
2)、自定义toolbar 继承 androidx.appcompat.widget.Toolbar
public class CustomToolBar extends Toolbar {
private TextView mCenterTitle;
private ImageView mCenterIcon; //中心icon
private TextView mLeftText;
private ImageButton mLeftIcon;
private TextView mSettingText;
private ImageButton mSettingIcon;
public CustomToolBar(Context context) {
super(context);
}
public CustomToolBar(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomToolBar(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public void setLeftText(@StringRes int id) {
setLeftText(this.getContext().getText(id));
}
public CustomToolBar setLeftText(CharSequence text) {
Context context = this.getContext();
if (this.mLeftText == null) {
this.mLeftText = new TextView(context);
this.mLeftText.setGravity(Gravity.CENTER_VERTICAL);
this.mLeftText.setSingleLine();
// this.mLeftText.setEllipsize(TextUtils.TruncateAt.END);
setLeftTextAppearance(getContext(), R.style.TextAppearance_TitleBar_subTitle);
//textView in left
// this.addMyView(this.mLeftText, Gravity.START);
int i = dp2px(this, 16);
this.addMyView(this.mLeftText, Gravity.START, 0, 0, i, 0, 48);
}
mLeftText.setText(text);

return this;
}
public void setLeftTextAppearance(Context context, @StyleRes int resId) {
if (this.mLeftText != null) {
this.mLeftText.setTextAppearance(context, resId);
}
}
public void setLeftTextColor(@ColorInt int color) {
if (this.mLeftText != null) {
this.mLeftText.setTextColor(color);
}
}
public void setLeftTextOnClickListener(OnClickListener listener) {
if (mLeftText != null) {
mLeftText.setOnClickListener(listener);
}
}
public CustomToolBar setLeftIcon(@DrawableRes int resId) {
return setLeftIcon(ContextCompat.getDrawable(this.getContext(), resId));
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public CustomToolBar setLeftIcon(Drawable drawable) {
Context context = this.getContext();
if (this.mLeftIcon == null) {
this.mLeftIcon = new ImageButton(context);
...
this.addMyView(this.mLeftIcon, Gravity.START);
} else {
if (mLeftIcon.getVisibility() != VISIBLE) {
mLeftIcon.setVisibility(VISIBLE);
}
}
if (mLeftText != null && mLeftText.getVisibility() != GONE) {
mLeftText.setVisibility(GONE);
}
mLeftIcon.setImageDrawable(drawable);
return this;
}
public void setLeftIconOnClickListener(OnClickListener listener) {
if (mLeftIcon != null) {
mLeftIcon.setOnClickListener(listener);
}
}
public void setLeftIconVisibility(int visibility) {
if (mLeftIcon != null) {
mLeftIcon.setVisibility(visibility);
}
}
public CustomToolBar setMyCenterTitle(@StringRes int id, boolean center) {
return setMyCenterTitle(this.getContext().getText(id), center);
}
public void setMyCenterTitle(@StringRes int Rid) {
setMyCenterTitle(this.getContext().getText(Rid));
}
public void setMyCenterTitle(CharSequence text) {
Context context = this.getContext();
if (this.mCenterTitle == null) {
this.mCenterTitle = new TextView(context);
...
剩余7页未读,继续阅读
资源评论


weixin_38559346
- 粉丝: 4
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 如何通过AI+数智应用突破科技管理瓶颈,实现环节性价值创造?.docx
- 如何用AI+数智应用技术解决科技管理系统“只有管理、没有服务”的难题?.docx
- 如何用AI+数智应用技术升级科技管理系统?.docx
- 深化科技管理体制改革,如何借助AI+数智应用构建智能化、场景化的科技管理服务?.docx
- 04-Group Discussion.pptx
- 深化科技管理体制改革,如何利用AI+数智应用工具提升科技管理系统的效率和价值?.docx
- 什么是AI+数智应用科技服务管理平台,它与传统科技管理系统有何不同?.docx
- 为何选择AI+数智应用科技管理服务而非传统软件?.docx
- 深化科技管理体制改革,如何借助AI+数智应用实现科技管理系统的深层次价值创造?.docx
- 为什么说“AI+数智应用科技管理服务”是高校科研管理的未来发展方向?.docx
- 为什么说AI+数智应用科技管理服务是科技管理系统开发商的新机遇?.docx
- 为什么传统科技管理系统无法满足需求?如何通过AI+数智应用进行现代化改造?.docx
- 为什么说AI+数智应用科技管理服务是未来的趋势?.docx
- 为什么现有的科技管理系统难以满足现代需求?如何通过AI+数智应用解决?.docx
- 为什么说AI+数智应用是科技管理系统升级的必由之路?.docx
- 02-Exchange Architecture.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
