我正在关注此文档以了解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没有零参数构造函数
我在iPad应用程序中有一个UISplitViewController,直到现在我在启动时将占位符设置为详细信息视图控制器,因此在用户选择项目之前,屏幕的右侧部分看起来不会是空的.
但是现在,在iOS 9上,当使用50/50水平拆分视图(多任务处理)时,拆分视图控制器会自动推送我的占位符,当然我希望它显示主视图,因为在这种情况下不需要占位符.
有人知道如何避免这种自动行为吗?
也许有一块API可以做到这一点,我错过了它?类似'selectViewController:'的东西告诉拆分视图控制器显示主视图或详细视图.或者也许我们可以访问内部导航控制器,所以我们弹出root?
谢谢!
我正在尝试使用新的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"
有任何想法吗?
我有一个带有子视图的 UIScrollView 实例,该子视图有自己的 UIPanGestureRecognizer,用于在滚动视图内移动子视图。我希望滚动视图的捏合缩放功能比平移手势具有最高优先级。然而,情况并非如此:当开始用一根手指捏住我的子视图时,它会平移。
到目前为止我尝试过的:
gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer::它将平移和捏合[panGestureRecognizer requireGestureRecognizerToFail:scrollView.pinchGestureRecognizer];:平移将不再起作用(仅针对UIGestureRecognizerStateEnded状态触发回调)。并且panGestureRecognizer.cancelsTouchesInView = NO不会有帮助。我的理解是,当开始从子视图捏合时,滚动视图和子视图都只接收一次触摸,这就是为什么在第二种情况下捏合手势识别器甚至不会失败,因为它甚至没有开始处理事件。
那么,关于如何实现这一目标有什么想法吗?
android ×3
android-architecture-components ×3
ios ×2
ios9 ×1
java ×1
mvvm ×1
rx-java2 ×1
uiscrollview ×1