2

現在、アプリケーションに Theme.Sherlock テーマを使用しています。TimePicker ウィジェットのテーマを変更することは可能ですか。青い仕切りを緑に、白いテキストを黒に変更したいと思います。

まだ使えるものは見つかりませんでした (残念ながら android-holo-colors.com ツールには TimePicker がありません)。

ありがとうございました!

4

2 に答える 2

0

Android SDK では、timepicker 内の要素を変更することはできませんでした。ある種のハッキングを行う方法が必要です。テキストの色については、テーマを変更する必要があります。これは私のフラグメントの小さな例です。フォーカスは「R.style.Picker_Black」にあります。タイムピッカーで「Black」テキストの色を表示するために、テーマを「Theme.Holo.Light」に設定しました。

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    final Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.Picker_Black);
    LayoutInflater localInflater = inflater.cloneInContext(contextThemeWrapper);
    View v = localInflater.inflate(R.layout.fragment_booking, container, false);
    return v;
  }

「style.xml」でスタイルを定義する

  <style name="Picker.Black" parent="android:Theme.Holo.Light">
    <item name="android:editTextStyle">@style/Widget.EditText.White</item>
  </style>

ディバイダーの場合:

public class CustomTimePicker extends TimePicker {
  public CustomTimePicker(Context context) {
    super(context);
    init();
  }

  public CustomTimePicker(Context context, AttributeSet attrs) {
    super(context, attrs);
    init();
  }

  public CustomTimePicker(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    init();
  }

  private void init() {
    removeAllDividers(this);
  }

  private void removeAllDividers(ViewGroup picker) {
    for (int i = 0; i < picker.getChildCount(); i++) {
      View view = picker.getChildAt(i);
      if (view instanceof NumberPicker) {
        try {
          Field field = NumberPicker.class.getDeclaredField("mSelectionDivider");
          field.setAccessible(true);
          field.set(view, null);
        } catch (Exception e) {
        }
      } else if (view instanceof ViewGroup) {
        removeAllDividers((ViewGroup) view);
      }
    }
  }
}
于 2014-09-08T06:49:14.210 に答える
0

私はこの答えには少し遅れていますが、将来疑問に思う人のために. 追加gradle:

compile 'com.github.rey5137:material:1.2.2'

これは私が今まで見た中で最高の図書館です。これを使って。必要なすべての情報が含まれています。

于 2015-12-24T10:53:35.480 に答える