标签: android-textinputlayout

如何减少Android中浮动editText提示和editText框之间的空间?

我有一个带浮动提示的EditText,但我想知道如何减少浮动提示和EditText框之间的空间.

现在我的UI看起来像http://imgur.com/9hQzzx4,我想减少"标题"浮动提示和EditText框之间的空间.

这是我的xml文件的代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">

    <android.support.v7.widget.Toolbar
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" >

    </android.support.v7.widget.Toolbar>

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginRight="16dp">

        <EditText
            style="@style/Widget.AppCompat.EditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="40dp"
            android:hint="Title"/>

    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="16dp"
        android:layout_marginRight="16dp">

        <EditText
            style="@style/Widget.AppCompat.EditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="32dp"
            android:hint="Details"/>

    </android.support.design.widget.TextInputLayout>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

android android-layout android-edittext android-textinputlayout

11
推荐指数
1
解决办法
5375
查看次数

与ViewPager一起使用时出错TextInputLayout时出错

看起来TextInputLayout只是在里面不起作用ViewPager.

错误是:

扩展类android.support.design.widget.TextInputLayout时出错

AppcompatDesign library补充说.Theme是正确的.

PageAdapter用来充气和填充ViewPager.

TextInputLayout视图在应用程序的所有其他部分中都很好地膨胀.

layout我膨胀了ViewPager.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="wrap_content">

  <android.support.design.widget.TextInputLayout
    android:id="@+id/text_input_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <EditText
      android:id="@+id/edit_text"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:hint="My Edit Text" />

  </android.support.design.widget.TextInputLayout>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

android android-viewpager android-textinputlayout

11
推荐指数
1
解决办法
793
查看次数

如何将全局自定义样式应用于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
查看次数

Android无法解析Material Components

我收到此错误:

无法解析符号'@ style/Widget.MaterialComponents.TextInputLayout.OutlineBox'

我在XML中将此行添加到TextInputLayout后出现此错误:

style="@style/Widget.MaterialComponents.TextInputLayout.OutlineBox" 
Run Code Online (Sandbox Code Playgroud)

这是我的完整XML代码(删除了不相关的约束/边距):

<android.support.design.widget.TextInputLayout
    android:id="@+id/textInputLayout2"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlineBox"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    app:counterEnabled="true"
    app:counterMaxLength="300">

    <android.support.design.widget.TextInputEditText
        android:id="@+id/cheese_description"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="start"
        android:hint="@string/cheese_description" />

</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

这是我的app build.gradle:

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "app.cheese.cheese.some.sample_cheese"
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    buildToolsVersion '27.0.3'
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.google.firebase:firebase-auth:11.8.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    compile 'com.android.support:design:27.0.2'
    compile …
Run Code Online (Sandbox Code Playgroud)

xml android android-appcompat android-design-library android-textinputlayout

11
推荐指数
3
解决办法
1万
查看次数

Android中的InputTextLayout setError()方法无法正常工作

我设计了一个自定义的InputTextLayout,它包含一个自定义的Edittext.这个自定义的Edittext扩展了"AppCompatEdittext".我的MainActivity也扩展了AppCompatActivity.但是我仍然无法使用TextInputLayout显示错误消息.以下是各种文件的代码片段.

main.xml中

<android.support.design.widget.TextInputLayout
            android:id="@+id/last_name_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/first_name_layout"
            android:layout_marginLeft="25dp"
            android:layout_marginRight="25dp"
            android:layout_marginTop="12dp"
            android:background="@drawable/grey_button_normal"
            android:hint="Last name"
            android:minHeight="48dp"
            android:paddingTop="3dp"
            android:theme="@style/TextLabel">

            <com.feebite.widgets.StyleableEditText
                android:id="@+id/lastname_edittext"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_gravity="center_vertical"
                android:background="@android:color/transparent"
                android:gravity="center_vertical"
                android:minHeight="48dp"
                android:nextFocusDown="@+id/email_edittext"
                android:paddingBottom="10dp"
                android:paddingLeft="15dp"
                android:singleLine="true"
                android:textColor="@color/darkish_grey"
                android:textColorHint="@color/darkish_grey"
                android:textCursorDrawable="@null"
                android:textSize="18sp" />

        </android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

MainActivity.java

mLastNameLayout = (TextInputLayout) findViewById(R.id.last_name_layout);
 mLastNameLayout.setHint("Last name");
mLastNameLayout.setErrorEnabled(true);
Run Code Online (Sandbox Code Playgroud)

styles.xml中的自定义主题

<style name="TextLabel" parent="TextAppearance.AppCompat">
        <!-- Hint color and label color in FALSE state -->
        <item name="android:textColorHint">@color/darkish_grey</item>
        <!-- Label color in TRUE state and bar color FALSE and TRUE State -->
        <item name="colorAccent">@color/darkish_grey</item>
        <item name="colorControlNormal">@color/darkish_grey</item>
        <item name="colorControlActivated">@color/dark_pink</item>
    </style> …
Run Code Online (Sandbox Code Playgroud)

android android-textinputlayout

10
推荐指数
2
解决办法
2922
查看次数

TextInputLayout设置错误没有消息?

是否可以在文本输入布局上设置错误而不显示任何错误消息(我已在其他地方执行此操作)?

textinputlayout.setError("");
Run Code Online (Sandbox Code Playgroud)

不幸的是不行.

我基本上需要的是textInputLayout将其线条颜色更改为红色,但我需要以编程方式进行.谢谢

android android-textinputlayout

10
推荐指数
3
解决办法
1581
查看次数

TextInputLayout后缀/前缀

我想在TextInputLayout中添加后缀。一个例子取自material.io

例

有没有标准的解决方案?

android android-textinputlayout material-components material-components-android

10
推荐指数
2
解决办法
3468
查看次数

OutlinedBox TextInputLayout和重力中心?

如何使用TextInputLayout实现居中的新OutlinedBox样式?

当前行为:

左和中

<android.support.design.widget.TextInputLayout
    android:id="@+id/textInputLayout2"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="left"
    >
    <android.support.design.widget.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:hint="hint"
        />
</android.support.design.widget.TextInputLayout>

<android.support.design.widget.TextInputLayout
    android:id="@+id/textInputLayout"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    >
    <android.support.design.widget.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:hint="hint2"
        />
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

我用com.android.support:design:28.0.0

有什么想法可以实现以外观为中心的TextInputEditText?

android android-support-library android-textinputlayout material-components material-components-android

10
推荐指数
1
解决办法
580
查看次数

为什么在TextInputLayout中找不到属性app:endIconMode?

您好,我正在使用androidx库创建一个应用程序,但是当我尝试添加一个开关来显示或隐藏具有app:endIconMode属性的TextInputEditText中的密码时,出现错误错误:找不到属性endIconMode。

这是我的TextInputLayout和TextInputEditText

<com.google.android.material.textfield.TextInputLayout
            android:id="@+id/password_text_input_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="password"
            app:endIconMode="password_toggle"
            app:layout_constraintTop_toBottomOf="@+id/user_text_input_layout"
            style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">

        <com.google.android.material.textfield.TextInputEditText
                android:id="@+id/password_text_input_edit_text"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textPassword"/>

    </com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

这些也是我在gradle中的依赖

implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3'
implementation 'com.google.android.material:material:1.0.0'
Run Code Online (Sandbox Code Playgroud)

我不确定我缺少什么,也许是依赖关系?据我在文档中阅读的内容,除了材料之外,不需要任何额外的依赖。

谢谢

android android-textinputlayout androidx

10
推荐指数
1
解决办法
3656
查看次数

TextInputLayout 移动提示标签并在聚焦时更改其背景颜色

我正在尝试自定义材料TextInpuLayout.OutlinedBoxTextInputEditText.

我目前的状态如下图

在此处输入图片说明

我想要做的是删除提示标签的背景,以便它不会创建丑陋的切口。像这样:

在此处输入图片说明

或者,如果不可能将标签移动到输入上方也可以解决问题:

在此处输入图片说明

如果使用样式可以实现这一点就好了,这样我也可以轻松地将其应用于其他文本输入元素。我对android很陌生,所以请体谅。

这是样式的代码:

<style name="MyTheme" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
    <item name="android:textSize">14sp</item>
    <item name="boxCornerRadiusTopStart">@dimen/textInputCornerRadius</item>
    <item name="boxCornerRadiusTopEnd">@dimen/textInputCornerRadius</item>
    <item name="boxCornerRadiusBottomStart">@dimen/textInputCornerRadius</item>
    <item name="boxCornerRadiusBottomEnd">@dimen/textInputCornerRadius</item>
    <item name="boxBackgroundColor">@color/primaryDarkColorBackground</item>
    <item name="boxStrokeColor">@color/text_input_box_stroke</item>
</style>
<style name="EditTextStyle" parent="Widget.AppCompat.EditText">
    <item name="android:background">@null</item>
    <item name="android:paddingStart">30dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

这是我在布局中定义输入的方式:

<com.google.android.material.textfield.TextInputLayout
        android:id="@+id/username_layout"
        style="@style/MyTheme"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="48dp"
        android:layout_marginEnd="48dp"
        android:hint="@string/email_or_username"
        app:boxBackgroundMode="outline"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.10">

        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/username"
            style="@style/EditTextStyle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

android android-textinputlayout android-textinputedittext material-components material-components-android

10
推荐指数
1
解决办法
1839
查看次数