我在我的应用程序中使用以下代码将我的主页图标设置为特定的drawable:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setIcon(R.drawable.ic_menu);
getSupportActionBar().setDisplayShowTitleEnabled(false);
Run Code Online (Sandbox Code Playgroud)
但是我遇到了"创建装饰视图和我的onCreate执行"之间的"滞后"问题,正如杰克沃顿所说:ActionBar Lag隐藏标题
在上面的链接上,解决方案是创建一个新样式,并在Manifest中声明它,所以我做了:
<resources>
<style name="AppTheme" parent="android:Theme.Light" />
<style name="WATheme" parent="Theme.Sherlock.Light">
<item name="android:actionBarStyle">@style/WATheme.ActionBar</item>
<item name="actionBarStyle">@style/WATheme.ActionBar</item>
</style>
<style name="WATheme.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid">
<item name="android:displayOptions">homeAsUp|showHome</item>
<item name="displayOptions">homeAsUp|showHome</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
表现:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:theme="@style/WATheme"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Run Code Online (Sandbox Code Playgroud)
它现在工作正常,我有我的主页按钮配置,但我仍然想要将图标更改为另一个特定的drawable,仅在此活动中,而不必更改android:iconManifest中的任何.我怎样才能做到这一点?
希望它足够清楚.谢谢.
那些不熟悉Android和/或Firebase开发的人简介:
在Android开发中,您应该总是从主线程(也称为UI线程)操作应用程序的视图,但如果您的应用程序需要进行一些繁重的处理,它应该使用后台线程,否则应用程序似乎没有响应.
Firebase是一种服务,它提供了一种在云中存储和同步数据的方法.它还提供了一个Android SDK来管理这个数据库.每次使用此SDK进行操作(如查询)时,Firebase都会通过在其自己的内部后台线程上进行所有繁重处理并始终在主线程上调用其回调来避免这些线程陷阱.
例:
Query postsQuery = FirebaseDatabase.getInstance().getReference("posts");
ValueEventListener postListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// This is always called on the main thread
// Get Post object and use the values to update the UI
Post post = dataSnapshot.getValue(Post.class);
// ...
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Getting Post failed, log a message
printError(databaseError.toException());
// ...
}
};
postsQuery.addValueEventListener(postListener);
Run Code Online (Sandbox Code Playgroud)
我面临的实际问题:
我正在尝试使用如下方法使用RxJava包装Firebase的查询侦听器:
private static Observable<DataSnapshot> …Run Code Online (Sandbox Code Playgroud) 当我们需要向用户显示一小组选项(2或3)时,是否有任何推荐的替代默认"Radio Buttons并排"解决方案?我的意思是,我们通常这样做:

但是我看到很多应用程序都在改编iOS中的"Segmented Controls":

我认为这根本不是一个好习惯.
在我的具体情况下,我不认为隐藏一些选项会对用户有所帮助,因此Spinners不是一个真正的选择.我也不会改变任何观点,所以它不像我在寻找标签或类似的东西.然后我们切换按钮和开关,我认为这不符合我的需要,因为我不会在状态之间切换.最后我们有这篇文章建议使用简单的常规按钮:http://kintek.com.au/blog/portkit-ux-metaphor-equivalents-for-ios-and-android/
我倾向于使用常规按钮的实现,如文章中的那个,但我想知道是否有任何优雅的替代品.
谢谢!