小编Ste*_*sen的帖子

如何将全局自定义样式应用于android.support.design.widget.TextInputEditText?

我有我的AppTheme定义style.xml,我全局应用自定义样式为我所有的应用程序的TextView,EditText,Button等.

现在我想做同样的android.support.design.widget.TextInputEditText但是如何做?

它没有扩展,EditText因此忽略了样式.

这是我得到的:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>

    <style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary</item>
        <item name="colorAccent">@color/accent</item>

        <!-- Globally override default widget styles with custom -->
        <item name="android:textViewStyle">@style/App.TextView</item>
        <item name="android:editTextStyle">@style/App.EditText</item>
        <item name="android:buttonStyle">@style/App.Button.Primary</item>
    </style>

    <style name="App.TextView" parent="@android:style/Widget.TextView">
        <item name="android:textColor">@color/text</item>
        <item name="android:fontFamily">sans-serif-light</item>
        <item name="android:textSize">@dimen/textsize_normal</item>
    </style>

    <style name="App.EditText" parent="@android:style/Widget.EditText">
        <item name="android:textColor">#f00</item>
        <item name="android:fontFamily">sans-serif-light</item>
        <item name="android:textSize">@dimen/textsize_xxxlarge</item>
        <item name="android:textStyle">bold</item>
        <item name="android:textColorHint">@color/text_hint</item>
    </style>

    <style name="App.Button" parent="@android:style/Widget.Button">
        <item name="android:textSize">@dimen/button_text_size</item>
        <item name="android:fontFamily">sans-serif-medium</item>
        <item name="android:textAllCaps">false</item> …
Run Code Online (Sandbox Code Playgroud)

android styles android-edittext material-design android-textinputlayout

11
推荐指数
2
解决办法
803
查看次数

如何设置 EditText 的固定最小宽度,使其紧紧围绕提示和长度限制的类型内容?

我想为 an 设置最小固定宽度,EditText以便它既可以包含它的提示,也可以包含键入的、长度受限的内容,例如 2 位数字。

一些细节:

  1. 我希望能够动态地做到这一点,因为我有许多用于不同目的的字段,具有不同的提示(不同语言)和输入长度(一些 2 位数字,其他 4 位数字)。
  2. 提示不一定比输入本身长。提示可以是“dd”或“Day”,输入可以是到数字。
  3. 我不需要同时为提示和内容留出空间;当用户开始输入时提示消失。
  4. 我用了一个扩展自定义字体EditText类,但因为我复制应该处理EditTextPaint

我有这样做的实用方法,但它返回的宽度太窄,因此提示被剪裁。我究竟做错了什么?

EditText 在 XML 中指定如下:

 <EditText
        android:id="@+id/birthday_month"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:hint="@string/birthday_month_hint"
        android:lines="1"
        android:maxLength="2">
Run Code Online (Sandbox Code Playgroud)

在我的活动中,我首先找到 EditText,然后使用Texts.setNiceAndTightWidth(monthEditText, 2)下面定义的(包括辅助方法)准备它:

public class Texts
{

    public static void setNiceAndTightWidth ( EditText editText, int maxInputLength )
    {
        // String of chars to test for widest char.  Include all possible input chars and chars of hint, as we need to make …
Run Code Online (Sandbox Code Playgroud)

android width android-edittext

5
推荐指数
0
解决办法
913
查看次数