12

datepicker のデフォルトのテキストサイズがアプリには大きすぎます。ここで変更する方法が提案されているのを見てきましたが、datepicker クラス内にネストされたテキストビューを探し回るのは、扱いにくく、エラーが発生しやすいようです。

それを行うためのより良い/よりクリーンな方法はありますか?

4

6 に答える 6

9

テーマをDatePickerレイアウトに設定して追加android:textSizeするとうまくいきます。

レイアウトのxmlに、DatePicker以下に示すようにテーマを適用するを追加します-

<DatePicker xmlns:android="http://schemas.android.com/apk/res/android"
            android:theme="@style/NumberPickerStyle"
            android:datePickerMode="spinner"
            android:calendarViewShown="false"
            android:layout_gravity="center_horizontal"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"/>

NumberPickerStyle次に、次のようにstyles.xml指定して定義しますandroid:textSize-

<style name="NumberPickerStyle">
        <item name="android:textSize">@dimen/number_picker_text_size</item>
</style>
于 2018-05-07T10:10:57.470 に答える
5

datepicker/timepicker/numberpicker のフォント サイズを変更する最も簡単な方法は、テーマをカスタマイズすることです。

スタイル ファイルで、次の方法でデフォルトのフォント サイズを設定します。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="android:textSize">22sp</item>
</style> 
于 2016-09-08T05:36:51.693 に答える
2

Sean のアプローチでは、多数のピッカーが存在する場合に備えて、ピッカー自体の UI にいくつかの不具合が生じました。ピッカーの下のすべてのコンポーネントにテキスト サイズを適用するのは完璧ではないと思います。以下は私が使用したもので、UI の不具合もなく完璧に動作します。

<style name="PickerTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:editTextStyle">@style/PickerEditText</item>
</style>

<style name="PickerEditText" parent="ThemeOverlay.AppCompat.Dark">
    <item name="android:textSize">24sp</item>
</style>
于 2018-01-23T17:04:27.350 に答える
0

以下のコードを使用します。

ViewGroup childpicker = (ViewGroup)datePicker.findViewById(Resources.getSystem().getIdentifier("month", "id", "android"));

EditText mornthEt = (EditText)childpicker.getChildAt(1);// month widget

//change textsize and textcolor for mornthEt

mornthEt.setTextSize(30);

mornthEt.setTextColor(Color.GREEN);
于 2012-10-16T09:27:42.160 に答える
-2

以下のコードを使用

 DatePicker picker = (DatePicker)findViewById(R.id.dp_date);
    ViewGroup childpicker

     = (ViewGroup)
    findViewById(Resources.getSystem().getIdentifier("month" /*rest is:
    day, year*/, "id", "android"));

    EditText textview = (EditText)
    picker.findViewById(Resources.getSystem().getIdentifier("timepicker_input",
    "id", "android"));
    textview.setTextSize(30);
    textview.setTextColor(Color.GREEN);
于 2012-09-05T09:28:12.547 に答える