【问题标题】:How to change the year and summary text size in date picker dialog android如何在日期选择器对话框android中更改年份和摘要文本大小
【发布时间】:2019-11-25 02:54:12
【问题描述】:

我已经设置了

<item name="android:textSize">12sp</item>

以应用程序 [AppTheme] 的风格。

因此,日期选择器对话框中的年份标签和摘要标签变小了。我正在尝试编辑它们的大小。

我尝试了StackOverflow 的各种解决方案。但是,它们都不适合我。相反,日历覆盖了整个屏幕。请帮我解决这个问题。

【问题讨论】:

  • 你改变这个标题文本大小吗?
  • 是的。它现在正在工作。

标签: android datepickerdialog


【解决方案1】:

您可以像这样为您的日期选择器使用自定义主题

  <style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
    <item name="colorAccent">@color/colorPrimary</item>
    <item name="android:textSize">25sp</item>
</style>


以及像这样的日期选择器对话框

 new DatePickerDialog(MapActivity.this, R.style.DialogTheme, new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                    //DO SOMETHING
                }
            }, 2019, 11, 25).show();

【讨论】:

    【解决方案2】:

    在日期时间选择器中,您可以控制三件事。标题中的年份文本,低于年份的日期。最后是按钮(取消和确定)。

    要更改按钮的大小和字体,只需编辑如下内容:

    <style name="datepicker_dialog" parent="Theme.AppCompat.Light.Dialog">
        <item name="android:colorAccent">@color/black_000</item>
        <item name="android:colorControlActivated">@color/black</item>
        <item name="android:textSize">14sp</item>
        <item name="fontFamily">@font/yourFont</item>
        <item name="android:textAllCaps">false</item>
    </style>
    

    要更改年份和日期的字体和大小,您必须跳转到定义 DatePickerDialog 的代码:

    val dialog = DatePickerDialog(activity, this,
                        params[0],
                        params[1],
                        params[2])
    val baseLayout = dialog.datePicker.getChildAt(0) as LinearLayout
    val childLayout = baseLayout.getChildAt(0) as LinearLayout
    
    val titleLayout = childLayout.getChildAt(0) as LinearLayout
    
    val dayText = titleLayout.getChildAt(1) as TextView
    dayText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20f)
    dayText.typeface = ResourcesCompat.getFont(activity, R.font.yourFont)
    
    val yearText = titleLayout.getChildAt(0) as TextView
    yearText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 12f)
    yearText.typeface = ResourcesCompat.getFont(activity, R.font.yourFont)
    
    dialog.show()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-13
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 2012-08-15
      相关资源
      最近更新 更多