android - 自定义 EditText - Material 设计

标签 android android-edittext material-design android-custom-view

我开发了一个自己的类,它扩展了 EditText。 但是我的自定义 View 与普通 View 有不同的外观。

public class DateEditText extends EditText {
    [...]

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

    public DateEditText(Context context) {
        super(context);
        init();
    }

    public DateEditText(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init() {
        setInputType(InputType.TYPE_CLASS_DATETIME);
        setFilters(new InputFilter[]{new InputFilter.LengthFilter(10)});
        setFocusable(false);
    }

    [...]
}

前两个输入字段是普通的 EditText。 第三个是我自己的看法。

    <EditText
        android:layout_width="match_parent"
        android:layout_height="56dp"
        android:id="@+id/addTask_title"
        android:textSize="16sp"
        android:maxLength="50"
        android:hint="@string/addTask_title"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="56dp"
        android:maxLines="5"
        android:scrollbars="vertical"
        android:inputType="textMultiLine"
        android:id="@+id/addTask_description"
        android:textSize="16sp"
        android:maxLength="400"
        android:hint="@string/addTask_description"/>

    <de.test.DateEditText
        android:layout_width="match_parent"
        android:layout_height="56dp"
        android:id="@+id/addTask_date"
        android:textSize="16sp"
        android:hint="@string/addTask_date"/>

我喜欢为我自己的 EditText 使用与前两个相同的样式,但我不知道如何实现这一点。

在 SDK 21 的设备上一切正常,但在 SDK 21 以下,第三个 View 看起来不同。

最佳答案

在您的自定义 EditText 中添加 style="@style/Widget.AppCompat.EditText"

例如:

<de.test.DateEditText
        android:layout_width="match_parent"
        android:layout_height="56dp"
        android:id="@+id/addTask_date"
        android:textSize="16sp"
        android:hint="@string/addTask_date"
        style="@style/Widget.AppCompat.EditText"/>

关于android - 自定义 EditText - Material 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32811454/

相关文章:

android - 在选择一个值之前,我想在 Spinner 中显示为 "Please Select"。选择一个值后它应该消失

Java Android 关闭相机

android - OnFocusChange 并不总是有效

android - 如何在 Canvas 上获取文本输入?

java - 如何从android中的Edittext连续获取值

android - 如何根据 Material Ratio keylines 动态定义 AppBarLayout 高度

java - 线程 hibernate ,不做

android - 不幸的是应用程序已停止

android - FloatingActionButton 不隐藏

android - 无法解析 : com. android.support :design:26. 0.0