如何在 android 中更改 InputTextLayout 的文本颜色
How to change the text color for the InputTextLayout in android
编辑:
我想去掉的栏是顶部的栏,上面写着测试。我要更改的文本颜色是 "testing@gmail.com" 用户输入的文本:
这是我的XML登录activity(我使用android工作室提供的默认登录activity):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.uname.myapp.LoginActivity">
<!-- Login progress -->
<ProgressBar
android:id="@+id/login_progress"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:visibility="gone" />
<ScrollView
android:id="@+id/login_form"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/email_login_form"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<AutoCompleteTextView
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/prompt_email"
android:inputType="textEmailAddress"
android:maxLines="1"
android:singleLine="true" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/prompt_password"
android:imeActionId="6"
android:imeActionLabel="@string/action_sign_in_short"
android:imeOptions="actionUnspecified"
android:inputType="textPassword"
android:maxLines="1"
android:singleLine="true" />
</android.support.design.widget.TextInputLayout>
<Button
android:id="@+id/email_sign_in_button"
style="?android:textAppearanceSmall"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/action_sign_in"
android:textStyle="bold" />
</LinearLayout>
</ScrollView>
</LinearLayout>
我想去掉顶部的横条,所以网上给出的解决方案是继承自Theme.AppComtact.NoActionBar
。这是我的风格:
<style name="MyTheme" parent="Theme.AppCompat.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimary</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowBackground">@android:color/white</item>
<item name="android:textColorHint">@android:color/darker_gray</item>
<item name="android:textColor">@android:color/black</item>
</style>
因为找不到关于 TextInputLayout
的文档以及如何在文本字段中键入时简单地更改字体颜色而感到沮丧。尝试在 SO 和其他网站上搜索,但找不到解决方案。
我什至试过 <item name="android:colorControlNormal">@android:color/black</item>
,但它需要 API 21 级,现在至少要达到 15 级。
来自 Python / Django 背景并且第一次尝试学习 android 开发。
谁能指出我正确的方向?是否有文档显示开发人员可以应用于文本的所有可能的样式?
我的 androidmanifest
文件在应用程序中有这个:
android:theme="@style/MyTheme"
如果您想删除操作栏或标题栏,请使用此样式并根据您的需要进行必要的设置true/false。
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
<item name="android:windowNoTitle">false</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
并在您的清单文件中
<activity
android:name=".activities.FullViewActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"
/>
以及更改字体颜色
<EditText
android:id="@+id/myEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Your Name"
android:textColor="#FF0000"
</EditText>
如果您只想设置 TextInputLayout 提示颜色,那么您应该试试这个
app:hintTextAppearance="@style/text_appearance_color"
<android.support.design.widget.TextInputLayout
android:padding="8dp"
android:id="@+id/tilSample"
app:errorTextAppearance="@style/error_appearance"
app:hintTextAppearance="@style/text_appearance_color"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/etSample"
android:layout_margin="8dp"
android:padding="8dp"
android:hint="android"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.TextInputLayout>
对于 NoActionBar,您的代码似乎没问题,只需在应用程序级别应用清单中的主题即可。
编辑:
风格
<style name="editTextStyle" parent="@android:style/Widget.EditText">
<item name="android:background">@drawable/someBackground</item>
<item name="android:textColor">#808080</item>
<item name="android:layout_height">45dip</item>
<!--other attibutes goes here-->
</style>
编辑: 我想去掉的栏是顶部的栏,上面写着测试。我要更改的文本颜色是 "testing@gmail.com" 用户输入的文本:
这是我的XML登录activity(我使用android工作室提供的默认登录activity):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.uname.myapp.LoginActivity">
<!-- Login progress -->
<ProgressBar
android:id="@+id/login_progress"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:visibility="gone" />
<ScrollView
android:id="@+id/login_form"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/email_login_form"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<AutoCompleteTextView
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/prompt_email"
android:inputType="textEmailAddress"
android:maxLines="1"
android:singleLine="true" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/prompt_password"
android:imeActionId="6"
android:imeActionLabel="@string/action_sign_in_short"
android:imeOptions="actionUnspecified"
android:inputType="textPassword"
android:maxLines="1"
android:singleLine="true" />
</android.support.design.widget.TextInputLayout>
<Button
android:id="@+id/email_sign_in_button"
style="?android:textAppearanceSmall"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/action_sign_in"
android:textStyle="bold" />
</LinearLayout>
</ScrollView>
</LinearLayout>
我想去掉顶部的横条,所以网上给出的解决方案是继承自Theme.AppComtact.NoActionBar
。这是我的风格:
<style name="MyTheme" parent="Theme.AppCompat.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimary</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowBackground">@android:color/white</item>
<item name="android:textColorHint">@android:color/darker_gray</item>
<item name="android:textColor">@android:color/black</item>
</style>
因为找不到关于 TextInputLayout
的文档以及如何在文本字段中键入时简单地更改字体颜色而感到沮丧。尝试在 SO 和其他网站上搜索,但找不到解决方案。
我什至试过 <item name="android:colorControlNormal">@android:color/black</item>
,但它需要 API 21 级,现在至少要达到 15 级。
来自 Python / Django 背景并且第一次尝试学习 android 开发。
谁能指出我正确的方向?是否有文档显示开发人员可以应用于文本的所有可能的样式?
我的 androidmanifest
文件在应用程序中有这个:
android:theme="@style/MyTheme"
如果您想删除操作栏或标题栏,请使用此样式并根据您的需要进行必要的设置true/false。
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
<item name="android:windowNoTitle">false</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
并在您的清单文件中
<activity
android:name=".activities.FullViewActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"
/>
以及更改字体颜色
<EditText
android:id="@+id/myEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Your Name"
android:textColor="#FF0000"
</EditText>
如果您只想设置 TextInputLayout 提示颜色,那么您应该试试这个
app:hintTextAppearance="@style/text_appearance_color"
<android.support.design.widget.TextInputLayout
android:padding="8dp"
android:id="@+id/tilSample"
app:errorTextAppearance="@style/error_appearance"
app:hintTextAppearance="@style/text_appearance_color"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/etSample"
android:layout_margin="8dp"
android:padding="8dp"
android:hint="android"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.TextInputLayout>
对于 NoActionBar,您的代码似乎没问题,只需在应用程序级别应用清单中的主题即可。
编辑: 风格
<style name="editTextStyle" parent="@android:style/Widget.EditText">
<item name="android:background">@drawable/someBackground</item>
<item name="android:textColor">#808080</item>
<item name="android:layout_height">45dip</item>
<!--other attibutes goes here-->
</style>