我有我的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
我想为 an 设置最小固定宽度,EditText以便它既可以包含它的提示,也可以包含键入的、长度受限的内容,例如 2 位数字。
一些细节:
EditText类,但因为我复制应该处理EditText的Paint。我有这样做的实用方法,但它返回的宽度太窄,因此提示被剪裁。我究竟做错了什么?
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)