我是 android 开发的新手,目前正在尝试将 Material 设计集成到我的应用程序中。
我想评估一个简单的表格,为此我使用了组件 com.google.android.material.textfield.TextInputLayout
和 com.google.android.material.textfield.TextInputEditText
用于用户输入。除了文本输入,我还需要一个日期,我想用 MaterialDatePicker
读取它.
我试图显示 MaterialDatePicker
与 OnFocusChangeListener
,这也有效,但我有两个问题。
MaterialDatePicker
后立即关闭. MaterialDatePicker
再次。 这就是我实现
OnFocusChangeListener
的方式@Override
public void onFocusChange(View view, boolean selected) {
if( view.getId() == R.id.myId&& selected ){
MaterialDatePicker.Builder builder = MaterialDatePicker.Builder.datePicker();
MaterialDatePicker picker = builder.build();
picker.show( this.getParentFragmentManager(), "DATE_PICKER" );
}
}
是否有更适合演示的 Material Design 替代组件?我想将行为保留在表单中,因此用户输入日期后,上方应显示一个小标签,如下所示:
谢谢您的帮助。
最佳答案
我最近遇到了同样的问题。
关于键盘的第一个问题是通过调用来解决的:
mTextInputEditText.setInputType(InputType.TYPE_NULL);
通过将 InputType 设置为 TYPE_NULL,将不会通过单击文本字段打开键盘。
此外,如果您不再希望用户能够输入任何文本,您可以添加:
mTextInputEditText.setKeyListener(null);
第二个问题,要在 DatePicker 已经处于焦点时再次显示它,您可以设置一个额外的 onClickListener:
mTextInputEditText.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
openDatePicker();
}
});
一旦用户再次单击文本字段,就会调用 OnClickListener。可悲的是,它不适用于第一次点击。
你可以看看这个答案https://stackoverflow.com/a/11799891/9612595了解更多信息。不幸的是,使用 Material 的提示使文本字段无法聚焦会导致奇怪的行为。
我希望这会有所帮助!
关于Android 使用 MaterialDatePicker 和 TextInputLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60710536/