旋转器
在我的应用程序中,从数组填充,其宽度为
wrap_content
.
这些要素包括:
String[] items = {
"Select...",
"1",
"2",
"3"
}
用户界面还具有
spinner.setSelection(0, true); // Using false doesn't help.
启动应用程序时,当前选定的项目正确显示为
选择。。。
如果我选择“2”项,微调器将正确显示
2
但是如果我单击“清除”按钮,微调器只显示一个截断的
选择
.
setSelection()
,似乎旋转器未能重新绘制自身。在本例中,这是一个问题,因为新选择的字符串比前一个字符串长,因此UI上会出现截断。
解决,之后
,我试着添加
spinner.invalidate();
然后
spinner.post(() -> { // postDelayed() makes no difference either.
spinner.invalidate();
});
更新
下面是我的微调器的布局:
<Spinner
android:id="@+id/spinnerDobDay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/textView"
app:layout_constraintStart_toStartOf="parent"
android:hint="@string/select_day" />
<Spinner
android:id="@+id/spinnerDobMonth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/textView"
app:layout_constraintStart_toEndOf="@id/spinnerDobDay"
android:hint="@string/select_month" />
<Spinner
android:id="@+id/spinnerDobYear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/textView"
app:layout_constraintStart_toEndOf="@id/spinnerDobMonth"
android:hint="@string/select_year" />