我正在尝试在库模块中编写BaseToolBarActivity。 我想在app模块中使用灯光主题,但在工具栏上使用黑色主题然后我可以获得浅色文本颜色等等。 但是在库模块中使用BaseToolBarActivity时它不起作用。 像这样的代码
public abstract class BaseToolBarActivity extends BaseActivity {
private Toolbar mToolBar;
private TextView mTextView;
private RelativeLayout rootView;
@Override
protected final void initView() {
setContentView(R.layout.activity_base_title);
rootView = (RelativeLayout) findViewById(R.id.rl_rootView);
mToolBar = (Toolbar)findViewById(R.id.tb_baseToolbar);
mToolBar.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
mTextView = (TextView) findViewById(R.id.tv_baseTitle);
mTextView.setText(getTitleBarText());
View userView = LayoutInflater.from(this).inflate(getLayoutResource(), null);
if (userView != null) {
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
layoutParams.addRule(RelativeLayout.BELOW, R.id.tb_baseToolbar);
rootView.addView(userView, layoutParams);
mUnBinder = ButterKnife.bind(this, userView);
}
setSupportActionBar(mToolBar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
StatusBarCompat.compat(this);
}
protected abstract String getTitleBarText();
protected void enableBackIcon(boolean show) {
if (show) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mToolBar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
} else {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mToolBar.setNavigationOnClickListener(null);
}
}
protected void setTitleBarColor(@ColorInt int titleBarColor) {
this.setTitleBarColor(titleBarColor, -1);
}
protected void setTitleBarText(String title) {
mTextView.setText(title);
}
protected void setTitleBarColor(@ColorInt int titleBarColor, @ColorInt int statusBarColor) {
mToolBar.setBackgroundColor(titleBarColor);
StatusBarCompat.compat(this, statusBarColor);
}
protected void setTitleSize(float size) {
mTextView.setTextSize(size);
}
protected Toolbar getToolbarInstance() {
return mToolBar;
}
protected void setTitleTextColor(@ColorInt int titleBarColor) {
mTextView.setTextColor(titleBarColor);
}
}
我在xml
中确认了这种风格 <android.support.v7.widget.Toolbar
android:id="@+id/tb_baseToolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:theme="@style/AppTheme.Toolbar">
<TextView
android:id="@+id/tv_baseTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:textColor="#ffffff"
android:textSize="18sp" />
</android.support.v7.widget.Toolbar>
<style name="AppTheme.Toolbar" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">?actionBarSize</item>
<item name="android:textColorPrimaryInverse">@color/white</item>
<item name="android:textColorPrimary">@color/white</item>
<item name="android:actionMenuTextColor">@android:color/holo_green_light</item>
</style>
但这不起作用!!!
我仍然在app模块中尝试相同的代码,并且它可以工作,我怎么能在libray中配置它。