Android使用MaterialDatePicker和TextInputLayout
我是android开发新手,目前正在尝试将材质设计集成到我的应用程序中。 我想评估一个简单的表单,为此,我使用组件Android使用MaterialDatePicker和TextInputLayout,android,datepicker,material-design,Android,Datepicker,Material Design,我是android开发新手,目前正在尝试将材质设计集成到我的应用程序中。 我想评估一个简单的表单,为此,我使用组件com.google.android.material.textfield.TextInputLayout和com.google.android.material.textfield.textinputtext进行用户输入。除了文本输入,我还需要一个日期,我想用MaterialDatePicker读取它 我尝试使用onfocuschangeelistener显示MaterialDat
com.google.android.material.textfield.TextInputLayout
和com.google.android.material.textfield.textinputtext
进行用户输入。除了文本输入,我还需要一个日期,我想用MaterialDatePicker
读取它
我尝试使用onfocuschangeelistener
显示MaterialDatePicker
,这也可以,但我有两个问题
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" );
}
}
是否有更适合演示文稿的材料设计替代组件?我希望将该行为保留在表单中,因此一旦用户输入日期,就会在上面显示一个小标签,如下所示:
谢谢你的帮助。我最近遇到了同样的问题
关于键盘的第一个问题可以通过调用来解决:
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。遗憾的是,第一次点击它就不起作用了。
您可以查看此答案以了解更多信息。不幸的是,在Material的提示下,使文本字段不可聚焦会导致奇怪的行为
我希望这有帮助