Android:将按钮绘制为微调器

Sir*_*lot 20 android android-widget android-button android-spinner

我有一个自定义的android视图,它扩展了'Button'并充当了一个多级微调器 - 当它被按下时,它会显示一系列类似微调器的对话框,允许用户优化他们的选择.在这种情况下,它允许用户选择他们想要发生拾取的日,然后是小时,然后是分钟(以5分钟为间隔).当对话框未激活时,按钮上会显示当前选择的文本说明.

我想直观地指出用户可以通过按下按钮来改变选择,并认为微调器的外观正是我所需要的.我希望外观与设备上的其他微调器相同,并且能够轻松更改按钮上的文本,但我不确定如何在没有它的情况下实现这一点.我应该如何将按钮显示为与设备上其他微调器一致的微调器图标?

Jon*_*Lin 50

这就是我设法绘制一个像Spinner样式的按钮:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="New Button"
    android:id="@+id/button"
    style="?android:attr/spinnerStyle" />
Run Code Online (Sandbox Code Playgroud)

而已!

更新

类似下面的内容也应该有效:

<style name="SpinnerButtonStyle" parent="android:Widget.Holo.Spinner">
    <item name="android:textColor">@color/entry_field</item>
    <item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
</style>
Run Code Online (Sandbox Code Playgroud)

有关更多样式,请查看SDK,例如 sdk/platforms/android-18/data/res/values/styles.xml

  • 适用于2.1,2.3,4.0 +. (6认同)

Sir*_*lot 7

我找到了解决问题的方法.在我的按钮的构造函数中,我将背景可绘制资源设置为"btn_dropdown".

public DateAndTimePicker(Context context) {
    super(context);
    this.setBackgroundResource(android.R.drawable.btn_dropdown);
}
Run Code Online (Sandbox Code Playgroud)

它看起来与微调器按钮相同,按钮行为都没有改变,按钮文本正确居中.