300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Android Toolbar 居中

Android Toolbar 居中

时间:2018-08-18 01:35:47

相关推荐

Android Toolbar 居中

Android Toolbar封装

1、QToolbar是什么

标题栏控件,基于Toolbar控件封装

有返回按钮左标题居中标题子标题右侧菜单

优势:

继承于Toolbar,Toolbar的API QToolbar都支持,会toolbar可轻松上手

效果图:

2、如何使用

xml中引入com.qw.widget.appbar.QToolbar控件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><com.qw.widget.appbar.QToolbarstyle="?attr/toolbarStyle"android:layout_width="match_parent"android:layout_height="wrap_content"app:title="居中的标题"app:menu="@menu/toolbar"app:titleGravity="center"app:navigationIcon="@drawable/ic_baseline_arrow_back_ios_24" /><com.qw.widget.appbar.QToolbarstyle="?attr/toolbarStyle"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="32dp"app:title="居左标题"app:menu="@menu/toolbar"app:navigationIcon="@drawable/ic_baseline_arrow_back_ios_24"app:titleGravity="left" /></LinearLayout>

属性介绍:

app:titleGravity标题方向值有:left,center 默认center

API:

设置文本方向

public static final int GRAVITY_LEFT = 0;public static final int GRAVITY_CENTER = 1;public void setTextGravity(int gravity) {this.titleGravity = gravity;}

设置title

public void setTitle(CharSequence title) {}

3、自定义样式

<style name="Theme.QAppbar" parent="Theme.MaterialComponents.DayNight.NoActionBar"><!-- Primary brand color. --><item name="colorPrimary">@color/purple_500</item><item name="colorPrimaryVariant">@color/purple_700</item><item name="colorOnPrimary">@color/white</item><!-- Secondary brand color. --><item name="colorSecondary">@color/teal_200</item><item name="colorSecondaryVariant">@color/teal_700</item><item name="colorOnSecondary">@color/black</item><!-- Status bar color. --><item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item><!-- Customize your theme here. --><item name="toolbarStyle">@style/Toolbar</item></style><style name="Toolbar" parent="Widget.MaterialComponents.Toolbar.PrimarySurface"><!-- 重写titleTextAppearance即可 --><item name="titleTextAppearance">@style/TitleTextAppearance</item><!-- 文字顔色 --><item name="titleTextColor">?attr/colorOnPrimary</item><item name="titleGravity">center</item></style><style name="TitleTextAppearance"><!-- 文字大小 --><item name="android:textSize">@dimen/abc_text_size_title_material_toolbar</item><!-- 文字顔色 --><item name="android:textColor">?android:attr/textColorPrimary</item></style>

注意:Toolbar在设置控件文本是先设置titleTextAppearance后设置titleTextColor

toolbar源码 setTitle方法

public void setTitle(CharSequence title) {if (!TextUtils.isEmpty(title)) {if (mTitleTextView == null) {final Context context = getContext();mTitleTextView = new AppCompatTextView(context);mTitleTextView.setSingleLine();mTitleTextView.setEllipsize(TextUtils.TruncateAt.END);if (mTitleTextAppearance != 0) {mTitleTextView.setTextAppearance(context, mTitleTextAppearance);}if (mTitleTextColor != null) {mTitleTextView.setTextColor(mTitleTextColor);}}if (!isChildOrHidden(mTitleTextView)) {addSystemView(mTitleTextView, true);}} else if (mTitleTextView != null && isChildOrHidden(mTitleTextView)) {removeView(mTitleTextView);mHiddenViews.remove(mTitleTextView);}if (mTitleTextView != null) {mTitleTextView.setText(title);}mTitleText = title;}

8-10行设置文本样式11-13行设置文本颜色

4、github地址

qinweiforandroid/QAppbar ()

如有问题可以与我联系 QQ:435231045 请注明来源

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