5

のテキスト サイズとEditTextデフォルトSpinnerのライトホロテーマに問題があります。何らかの理由で、デフォルトでは同じではありません。

このサンプル レイアウトがあるとします。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="EditText default" />

    <EditText
        style="@android:style/Widget.Holo.Light.Spinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="EditText spinner style" />

    <Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@android:array/imProtocols" />
</LinearLayout>

...結果は次のようになります。

スクリーンショットから、次のことがわかります。

  1. (3)のテキスト サイズ は、既定では(1)よりもSpinner少し小さくなっています。EditText
  2. Spinner(2) にスタイルを適用すると、EditTextフォントはスピナーと同じ「小さい」サイズになります。
  3. Spinner-styledには、何らかの理由で左パディングEditTextもありません。

達成したいこと

RelativeLayoutから派生し、2 つの を含むカスタムの日時ピッカー コンポーネントを作成しましたEditText。クリックすると、最初のものは日付ピッカー ダイアログを表示し、2 つ目は時間ピッカー ダイアログを表示します。

EditTextここで、これら 2 つの を のようにスタイル設定したいと思います。これは ICS Google CalendarSpinnerと同様の方法で、次のようになります。

2 行目は、イベントEditText場所です。From入力と同じ日付値を入力しました。これは、クリックするとDatePickerDialogを表示するある種のView(おそらくEditTextでもある)です。

ご覧のとおり、From入力とTo入力のテキスト サイズは場所EditTextと同じで、左側のパディングも同じです。

同じフォント サイズと左パディングを維持しながら、EditText の Spinner のような外観を実現するにはどうすればよいですか?

さまざまなビューやウィジェット (この場合は EditText と Spinner) の textSize、パディングなどの実際のデフォルト値はどこ (Android スタイルの XML ファイル内) にありますか?

4

2 に答える 2

5

さて、誰も答えなかったので、これは私がやったことです:

試行錯誤の方法を適用して、実際のテキスト サイズと EditText の左パディングを決定し、これらのパラメーターを手動で設定しました。

<style name="PickerEditText" parent="@android:style/Widget.Holo.Light.Spinner">
    <item name="android:paddingLeft">12dp</item>
    <item name="android:textAppearance">?android:attr/textAppearanceMediumInverse</item>
</style>

これは汚い解決策ですが、システムのさまざまなテキストサイズ設定でも機能するように見えるので、今のところ私はそれに固執しています.

于 2012-12-03T20:30:03.367 に答える
1

https://github.com/android/platform_packages_apps_contacts/blob/master/res/layout/date_picker.xml

上記のリンクはまさに​​彼らのやり方です。受け入れられた回答と非常によく似ています。受け入れられた答えのように、実際のアプリで行ったのとは別のルートに行くことさえあります。

于 2013-02-05T20:54:07.297 に答える