我正在尝试创建此对话框:
.
当 Spinner 设置为自定义值时,TextEdit 应该会自动出现。我正在调用View.setVisible()
,但不会立即评估TextView
可见性,而是等待另一个更改 - 例如添加另一行或设置日期。
编码:
...
customText = (EditText) v.findViewById(R.id.edit_custom_text);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(adapter);
s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
SpinnerItem si = (SpinnerItem) adapterView.getItemAtPosition(i);
evt.type = si.eventType;
if (evt.type == EventType.CUSTOM) {
customText.setVisibility(View.VISIBLE);
} else {
customText.setVisibility(View.GONE);
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
//do nothing
}
});
我试过View.invalidate()
(在父母看来)View.refreshDrawableState()
但没有运气:/
编辑:达到上面的代码(由调试器验证),我也尝试过View.INVISIBLE
. 视图不会立即刷新,而只会在视图发生另一次更改后刷新。