android 材料日期选择器标题不合适

kpbwa7wx  于 2023-03-16  发布在  Android
关注(0)|答案(3)|浏览(202)

我在使用MaterialDatePicker时遇到了这个奇怪的问题。虽然它可以工作,但标题和当前日期没有显示出来。
你知道发生了什么吗?
我使用的是材质零部件库版本1.2.0
这是我得到的结果:

据我所知,我使用的是MaterialDatePicker的默认样式,并且没有重载任何与之相关的内容。
这是我在这次活动中使用的主题:

<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@android:color/transparent</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

任何提示或指示将不胜感激!

twh00eeo

twh00eeo1#

我的问题是使用FragmentActivity。我切换到AppCompatActivity,它对我很有效。

7jmck4yq

7jmck4yq2#

验证码:

public class MainActivity extends AppCompatActivity implements DatePickerDialog.OnDateSetListener{
        TextView textView;
        Button txt_open_date_picker;
        int yy,mm,dd;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            textView = findViewById(R.id.text);
            txt_open_date_picker = (Button) findViewById(R.id.txt_open_date_picker);
    
            txt_open_date_picker.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    DatePickerDialog datePickerDialog = new DatePickerDialog(
                            MainActivity.this,
                            MainActivity.this,
                            Calendar.getInstance().get(Calendar.YEAR),
                            Calendar.getInstance().get(Calendar.MONTH),
                            Calendar.getInstance().get(Calendar.DAY_OF_MONTH));
    
                    datePickerDialog.show();
                }
            });
    
        }
    
        @Override
        public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
            String date = dayOfMonth + "/" + month + "/" + year;
            textView.setText(date);
        }
    }
pzfprimi

pzfprimi3#

您可以按如下方式对齐所选文本:

<style name="MyCustomMaterialDatePicker" parent="ThemeOverlay.MaterialComponents.MaterialCalendar">
    <item name="materialCalendarHeaderSelection">@style/MaterialCalendar.HeaderSelection</item>
</style>

  <style name="MaterialCalendar.HeaderSelection" parent="@style/Widget.MaterialComponents.MaterialCalendar.HeaderSelection">
    <item name="android:layout_gravity">start|bottom</item>
</style>

然后在科廷

MaterialDatePicker.Builder.datePicker().setTheme(R.style.MyCustomMaterialDatePicker)

相关问题