我使用Google提供的支持库中的ActionbarActivity
。我为我的操作栏创建了一个自定义视图,其中包含附加到右侧的按钮和图像。问题是一旦活动开始我看到操作栏的默认标题(应用程序名称)和Android启动器图标(甚至不是我的启动器图标)出现在左侧一段时间,然后我的自定义视图应用。我该如何解决这个问题。我在onCreateView()之前和之前调用了以下代码,没有运气。我还有另一个问题,即使我的自定义视图设置完毕后,它仍然保留带有android徽标图标的图标,而不是我的启动器图标。
this.getSupportActionBar().setDisplayShowCustomEnabled(true);
this.getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setDisplayShowHomeEnabled(false);
LayoutInflater inflator = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflator.inflate(R.layout.title_view, null);
TextView tvTitle = (TextView) v.findViewById(R.id.actionbar_title);
this.getSupportActionBar().setCustomView(v);
编辑1: 图标的问题已经解决了。我将支持库添加为单独的项目。显然,支持库中的启动器图标取代了我的启动器图标。我从支持库项目中删除了所有资源,现在我的图标正常显示。当然主要问题仍然存在。
答案 0 :(得分:4)
好吧,我为此做了一些工作
我改变了我制作的操作栏的样式,使其具有透明图标和文字
<style name="MyTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:actionBarStyle">@style/MyTheme.ActionBarStyle</item>
</style>
<style name="MyTheme.ActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
<item name="android:icon">@android:color/transparent</item>
<item name="android:background">@drawable/actionbar_bg</item>
</style>
<style name="MyTheme.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">@android:color/transparent</item>
</style>
2-然后在setupActionBar()方法中我手动设置颜色
private void setupActionBar() {
getSupportActionBar().setDisplayShowHomeEnabled(false);
this.getSupportActionBar().setDisplayShowTitleEnabled(false);
this.getSupportActionBar().setDisplayShowCustomEnabled(true);
LayoutInflater inflator = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflator.inflate(R.layout.title_view, null);
TextView tvTitle = (TextView) v.findViewById(R.id.actionbar_title);
tvTitle.setTextColor(getResources().getColor(R.color.white));
....
}