小编Edu*_*bas的帖子

DialogFragment中的工具栏

在我们的应用程序中,我们有一些片段可以显示为全屏片段或对话框片段.这些片段继承DialogFragment而且我们确保根据应用程序执行的模式(全屏或对话框)正确实例化它们.

Toolbar在使用Lollipop在支持库中引入窗口小部件的最新更改之后,我们考虑为其中一些对话框片段添加一些额外的功能.我们的想法是让我们通常在普通片段中使用的选项菜单类型(即onCreateOptionsMenu执行后膨胀的选项菜单)DialogFragment仅在我们的子类中出现时才会显示为对话框.简而言之:当片段以全屏模式显示时,我们会扩展传统的选项菜单,当片段显示为对话框时,我们希望在独立模式下使用相同的选项菜单,但使用新的工具栏小部件.

我按照http://android-developers.blogspot.dk/2014/10/appcompat-v21-material-design-for-pre.html中的步骤操作,然后设法"激活"工具栏,但似乎菜单是没有膨胀 - 参见附件截图(在全屏模式下图片一个片段,在对话框模式下图片二).

是否可以使用新工具栏中的选项菜单进行充气DialogFragment

全屏模式对话模式

android android-fragments android-dialogfragment android-toolbar

16
推荐指数
2
解决办法
1万
查看次数

RxJava - 重复API调用,直到结果完成

我有一个返回的API FamilyDetails.我使用改造来获取它们,并建模如下:

Observable<FamilyDetails> getFamilyDetails(@Query int personId);
Run Code Online (Sandbox Code Playgroud)

获取后,这些详细信息将用于更新a Person.我的API FamilyDetails会在有一些信息显示时立即提供,这意味着细节可能不完整,因此complete = false当服务器尚未完成获取所有家庭详细信息时,响应中会有一个标记 - 反过来,我的应用程序应该FamilyDetails如果我们complete = false在第一个响应中收到,则发送另一个请求以获取剩余请求,并且只要细节仍然不完整,就继续这样做.

我"有点"实现了我想要的,但不完全是这个代码:

personApiService.getFamilyDetails(personId)
    // repeat call
    .flatMap(familyDetails -> personApiService.getFamilyDetails(personId))
    // until family details are complete
    .takeUntil(familyDetails -> familyDetails.isComplete())
    // update the person object with the family details
    .flatMap(familyDetails -> Observable.just(updatePerson(familyDetails))
    //subscribe!
    .subscribe(personSubscriber);
Run Code Online (Sandbox Code Playgroud)

我的personSubscriber返回更新了Person.

我有这个实现的问题是,部分更新不通过personSubscriberonNext(),因为我只得到一个呼叫onNext()与更新Person其完整的对象FamilyDetails.

我想使用RxJava对此进行建模,具有以下要求:

  • 如果我收到不完整的详细信息,我会更新Person 这些详细信息所属的对象,并通过它提供onNext().
  • 如果我们收到不完整的细节,我们继续查询完整的详细信息的API,并提供最新Person通过的物体 …

android rx-java retrofit2 rx-java2

2
推荐指数
1
解决办法
2834
查看次数