我想将vectorDrawable添加到我的谷歌地图,我必须在用户触摸地图时更改矢量pathData值,有没有办法改变它?或者有没有办法以编程方式使用pathData创建向量?
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:name="path1"
android:fillColor="#FF000000"
android:pathData="M9,2c-1.05,0 -2.05,0.16 -3,0.46 4.06,1.27 7,5.06 7,9.54 0,4.48 -2.94,8.27 -7,9.54 0.95,0.3 1.95,0.46 3,0.46 5.52,0 10,-4.48 10,-10S14.52,2 9,2z"/>
Run Code Online (Sandbox Code Playgroud)
我是 Android 架构组件的新手,并尝试在我的 Activity 和 MyLifecycleService 中使用 LiveData,但有时应用程序会崩溃
IllegalArgumentException:无法添加具有不同生命周期的相同观察者
这是我的服务代码
private final MutableLiveData<SocketStatus> socketStatusMutableLiveData = OrderRxRepository.Companion.getInstance().getMldSocketStatus();
socketStatusMutableLiveData.observe(this, socketStatus -> {
if (socketStatus == null) return;
...
});
Run Code Online (Sandbox Code Playgroud)
对于我的活动,我有 ActivityViewModel 类,其中包含相同的实时数据,这里是代码
class MyActivityViewModel: ViewModel() {
val socketStatusMutableLiveData = OrderRxRepository.instance.mldSocketStatus
}
Run Code Online (Sandbox Code Playgroud)
以及我的活动中的代码
MyActivityViewModel viewModel = ViewModelProviders.of(this).get(MyActivityViewModel .class);
viewModel.getSocketStatusMutableLiveData().observe(this, socketStatus -> {
if (socketStatus == null) return;
...
});
Run Code Online (Sandbox Code Playgroud)