Как изменить цвет текста для InputTextLayout в Android - PullRequest
0 голосов
/ 07 мая 2018

Изменить: Бар, от которого я хотел избавиться, был баром наверху, где написано «тестирование». Цвет текста, который я хочу изменить, - это текст «testing@gmail.com», который вводит пользователь:

UI

Вот мой XML для активности входа в систему (я использовал активность входа в систему по умолчанию, предоставляемую android studio):

<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"

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Если вы ищете только настройку цвета подсказки TextInputLayout, попробуйте это

Приложение: hintTextAppearance = "@ стиль / 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 ваш код выглядит нормально, просто примените тему в манифесте на уровне приложения.

Edit: стиль

<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>
0 голосов
/ 07 мая 2018

, если вы хотите удалить панель действий или заголовок заголовка, используйте этот стиль и сделайте необходимые 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>
...