我有一个 lateinit var 作为
lateinit var someVariable: SomeVariable
Run Code Online (Sandbox Code Playgroud)
我初始化这个值someVariable = SomeVariable(),并在需要时使用它。
在某个时候,我想将所有内容都设置为默认值并希望“取消初始化” someVariable。我怎样才能做到这一点?
我不是在寻找将其类型更改为nullable对象并设置为空。我需要保持一种Non-Null类型。
E/OpenGLRenderer: resultIndex is -1, the polygon must be invalid!
A/OpenGLRenderer: Error: Spot pair overflow!!! used 38, total 22
A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 11996 (hwuiTask1)
Run Code Online (Sandbox Code Playgroud)
使用 shapeAppearance 属性会导致崩溃。
这是 XML 中的 FAB
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
style="@style/Widget.MaterialComponents.FloatingActionButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/fab_margin"
android:onClick="@{() -> callback.add(viewModel.plant)}"
android:tint="@android:color/white"
app:shapeAppearance="@style/ShapeAppearance.Sunflower.FAB" <--
app:isGone="@{viewModel.isPlanted}"
app:layout_anchor="@id/appbar"
app:layout_anchorGravity="bottom|end"
app:srcCompat="@drawable/ic_plus" />
Run Code Online (Sandbox Code Playgroud)
下面是 shapeAppearance 的样式,
<style name="ShapeAppearance.Sunflower.FAB" parent="ShapeAppearance.MaterialComponents">
<item name="cornerFamily">rounded</item>
<item name="cornerSizeTopLeft">0dp</item>
<item name="cornerSizeTopRight">30dp</item>
<item name="cornerSizeBottomRight">0dp</item>
<item name="cornerSizeBottomLeft">30dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
这解决了崩溃。
<style name="ShapeAppearance.Sunflower.FAB" parent="ShapeAppearance.MaterialComponents">
<item name="cornerFamily">rounded</item>
<item name="cornerSizeTopLeft">0dp</item> <--
<item …Run Code Online (Sandbox Code Playgroud) android floating-action-button material-components android-jetpack material-components-android
我正在尝试使用.distinctUntilChanged()它,并且不会switchmap()在第一次之后传递价值。
RxTextView.textChanges(etUserQuery).debounce(300, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread()).filter(charSequence -> {
if (charSequence.toString().isEmpty()) {
etUserQuery.setHint("Please type username");
return false;
} else
return true;
}).distinctUntilChanged()
.switchMap(charSequence -> vm.dataFromNetwork(charSequence.toString()))
.subscribe(fetchUserResponce -> {
noDataText.setVisibility(fetchUserResponce.getItems().size() == 0 ? View.VISIBLE : View.GONE);
mUsersListAdapter.updateData(fetchUserResponce.getItems());
}));
Run Code Online (Sandbox Code Playgroud)
是正确的使用地点.distinctUntilChanged()吗?