我正在使用新的v7工具栏,但在我的生活中无法弄清楚如何更改标题的颜色.我已将工具栏的@style设置为styles.xml中声明的样式,并将textTextStyle应用于textColor.我错过了什么吗?我正在为Lollipop编码,但目前在Kitkat设备上进行测试.
styles.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>
<style name="ActionBar" parent="Theme.AppCompat">
<item name="android:background">@color/actionbar_background</item>
<item name="android:titleTextStyle">@style/ActionBar.TitleTextStyle</item>
</style>
<style name="ActionBar.TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/actionbar_title_text</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
actionbar.xml:
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar_actionbar"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
style="@style/ActionBar"/>
Run Code Online (Sandbox Code Playgroud) 在我的应用程序的适配器中,我将根据ajax错误返回错误代码.我正在应用程序路由的错误方法中处理这些.如果我通过link-to访问路由,这非常有用.但是,如果我刷新路径或只输入URL,则不会调用我的应用程序的错误处理程序.有没有一个地方我可以把这个错误处理保证每次运行?我真的不想在每一条路线中实现相同的"if 401,show login"代码.
路线/ application.js中:
export default Ember.Route.extend({
actions: {
error: function(reason) {
if (reason === 401) {
alert('401');
this.send('showLogin');
}
},
Run Code Online (Sandbox Code Playgroud)
适配器/ application.js中:
import DS from 'ember-data';
export default DS.ActiveModelAdapter.extend({
'namespace': '',
ajaxError: function(jqXHR) {
var error = this._super(jqXHR);
if (jqXHR && jqXHR.status === 401) {
return 401;
}
return error;
}
});
Run Code Online (Sandbox Code Playgroud)
编辑:
上面的代码几乎对我有用.我点击的主要问题是在刷新或点击URL时没有捕到this.send('showLogin').将此更改为转换可以很好地工作:
import Ember from 'ember';
export default Ember.Route.extend(ApplicationRouteMixin, {
actions: {
error: function(reason) {
if (reason === 401) {
this.transitionTo('login');
}
},
...
Run Code Online (Sandbox Code Playgroud)