小编Pat*_*NLT的帖子

Android ViewModel没有零参数构造函数

我正在关注文档以了解LiveData和ViewModel.在doc中,ViewModel类具有构造函数,

public class UserModel extends ViewModel {
  private MutableLiveData<User> user;

  @Inject UserModel(MutableLiveData<User> user) {
    this.user = user;
  }

  public void init() {
    if (this.user != null) {
      return;
    }
    this.user = new MutableLiveData<>();
  }

  public MutableLiveData<User> getUser() {
    return user;
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行代码时,我得到异常:

final UserViewModelviewModel = ViewModelProviders.of(this).get(UserViewModel.class);
Run Code Online (Sandbox Code Playgroud)

引起:java.lang.RuntimeException:无法创建类UserViewModel的实例引起:java.lang.InstantiationException:java.lang.Class没有零参数构造函数

android mvvm android-architecture-components

46
推荐指数
8
解决办法
2万
查看次数

具有MVP的Android架构组件

谷歌IO 17上发布了新的Android架构组件.

那么我们应该将MVP与架构组件和MVVM一起使用吗?

在Github上的谷歌样本中,他们使用了MVVM模型. Google示例

android android-architecture-components

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

UISplitViewController +拆分视图:在启动时隐藏详细信息

我在iPad应用程序中有一个UISplitViewController,直到现在我在启动时将占位符设置为详细信息视图控制器,因此在用户选择项目之前,屏幕的右侧部分看起来不会是空的.

但是现在,在iOS 9上,当使用50/50水平拆分视图(多任务处理)时,拆分视图控制器会自动推送我的占位符,当然我希望它显示主视图,因为在这种情况下不需要占位符.

有人知道如何避免这种自动行为吗?

也许有一块API可以做到这一点,我错过了它?类似'selectViewController:'的东西告诉拆分视图控制器显示主视图或详细视图.或者也许我们可以访问内部导航控制器,所以我们弹出root?

谢谢!

uisplitviewcontroller ios ios9

6
推荐指数
1
解决办法
3673
查看次数

缺少类LiveDataReactiveStreams

我正在尝试使用新的Android架构组件.我想用LiveDataReactiveStreams将Rx Flowable转换为LiveData但是缺少该类.

这是我的依赖项:

compile "android.arch.lifecycle:runtime:1.0.0-alpha1" compile "android.arch.lifecycle:extensions:1.0.0-alpha1" kapt "android.arch.lifecycle:compiler:1.0.0-alpha1"

有任何想法吗?

java android rx-java2 android-architecture-components

6
推荐指数
1
解决办法
1451
查看次数

UIPanGestureRecognizer 与 UIPinchGestureRecognizer 的超级视图冲突

我有一个带有子视图的 UIScrollView 实例,该子视图有自己的 UIPanGestureRecognizer,用于在滚动视图内移动子视图。我希望滚动视图的捏合缩放功能比平移手势具有最高优先级。然而,情况并非如此:当开始用一根手指捏住我的子视图时,它会平移。

到目前为止我尝试过的:

  • gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer::它将平移和捏合
  • [panGestureRecognizer requireGestureRecognizerToFail:scrollView.pinchGestureRecognizer];:平移将不再起作用(仅针对UIGestureRecognizerStateEnded状态触发回调)。并且panGestureRecognizer.cancelsTouchesInView = NO不会有帮助。

我的理解是,当开始从子视图捏合时,滚动视图和子视图都只接收一次触摸,这就是为什么在第二种情况下捏合手势识别器甚至不会失败,因为它甚至没有开始处理事件。

那么,关于如何实现这一目标有什么想法吗?

uiscrollview uigesturerecognizer ios

4
推荐指数
1
解决办法
1518
查看次数