我想将TextView"Deficient"的基线与EditText"10000"的基线对齐.他们都在里面<android.support.percent.PercentRelativeLayout>
我尝试了以下,但无法让它工作.
<android.support.percent.PercentRelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputLayout
android:id="@+id/textInputLayout_soil_nitrogen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
app:layout_widthPercent="63%">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter N of soil"
tools:text="10000" />
</android.support.design.widget.TextInputLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/textInputLayout_soil_nitrogen"
android:layout_toRightOf="@id/textInputLayout_soil_nitrogen"
app:layout_widthPercent="37%"
tools:text="Deficient" />
</android.support.percent.PercentRelativeLayout>
Run Code Online (Sandbox Code Playgroud)
给TextView类型提供20dp的顶部填充可以解决问题,但是对齐它们的基线会很不错.在这种情况下,这甚至可能吗?
我删除了textAppearance和id属性,顺便说一句.
android android-layout android-textinputlayout android-percent-library
我设计了一个自定义的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) 是否可以在文本输入布局上设置错误而不显示任何错误消息(我已在其他地方执行此操作)?
textinputlayout.setError("");
Run Code Online (Sandbox Code Playgroud)
不幸的是不行.
我基本上需要的是textInputLayout将其线条颜色更改为红色,但我需要以编程方式进行.谢谢
如何使用TextInputLayout实现居中的新OutlinedBox样式?
当前行为:
Run Code Online (Sandbox Code Playgroud)<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>
我用com.android.support:design:28.0.0。
有什么想法可以实现以外观为中心的TextInputEditText?
android android-support-library android-textinputlayout material-components material-components-android
您好,我正在使用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)
我不确定我缺少什么,也许是依赖关系?据我在文档中阅读的内容,除了材料之外,不需要任何额外的依赖。
谢谢
我正在尝试自定义材料TextInpuLayout.OutlinedBox和TextInputEditText.
我目前的状态如下图
我想要做的是删除提示标签的背景,以便它不会创建丑陋的切口。像这样:
或者,如果不可能将标签移动到输入上方也可以解决问题:
如果使用样式可以实现这一点就好了,这样我也可以轻松地将其应用于其他文本输入元素。我对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
我总是更新库更新,这就是它的结果.
在build.gradle(Project:xxx)中:
classpath 'com.android.tools.build:gradle:2.2.0-beta1'
Run Code Online (Sandbox Code Playgroud)
在build.gradle中(模块:app)
compile 'com.android.support:appcompat-v7:24.2.0'
compile 'com.android.support:design:24.2.0'
Run Code Online (Sandbox Code Playgroud)
并输入密码字段如下:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword" />
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
Taadaa ...我的密码字段现在如下所示:
你也可以随便去EditText.
但是,此更新中存在一些问题.
问题: 如果我在EditText中放置任何drawableRight,它什么都不显示.TextInputLayout还具有禁用切换功能的属性.我也是这样做的,但没有成功:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:passwordToggleEnabled="false">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableRight="@drawable/ic_alarm_on_black_24dp"
android:inputType="textPassword" />
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我.
android android-edittext android-design-library android-textinputlayout
我有一个非常具体的问题,当TextInputLayout没有聚焦时,它会改变TextInputLayout文本框的轮廓.我似乎无法找到一个属性来更改我的"未聚焦"文本框边框的颜色.
这是我正在尝试做的一个视觉示例:
此(文本框)的颜色:边框不是白色.目前它没有集中精力.点击它后,它变成白色:
我不知道我需要改变什么,似乎没有一个属性可以改变它.
我也使用材料设计文本输入布局样式,虽然我不知道这是否会影响它.
这是我的文本框的xml代码:
<other layouts ... >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_gravity="bottom"
android:layout_margin="5dp"
android:background="@drawable/item_recycler_view">
<android.support.design.widget.TextInputLayout
android:id="@+id/dialog_text_input_layout"
style="@style/Widget.AppTheme.TextInputLayoutList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Quick Add..."
android:textColorHint="@color/colorWhite"
app:boxStrokeColor="@color/colorWhite"
app:errorEnabled="true"
>
<android.support.design.widget.TextInputEditText
android:id="@+id/dialog_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:maxLines="1"
android:textColor="@color/colorWhite"
android:textSize="14sp" />
</android.support.design.widget.TextInputLayout>
</RelativeLayout>
</other layouts...>
Run Code Online (Sandbox Code Playgroud)
以下是我用于此的样式:
<style name="TextAppearance.AppTheme.TextInputLayout.HintTextAlt" parent="TextAppearance.MaterialComponents.Subtitle2">
<item name="android:textColor">@color/colorWhite</item>
</style>
<style name="Widget.AppTheme.TextInputLayoutList" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<item name="hintTextAppearance">@style/TextAppearance.AppTheme.TextInputLayout.HintTextAlt</item>
<item name="boxStrokeColor">@color/colorWhite</item>
<item name="boxCornerRadiusBottomEnd">5dp</item>
<item name="boxCornerRadiusBottomStart">5dp</item>
<item name="boxCornerRadiusTopEnd">5dp</item>
<item name="boxCornerRadiusTopStart">5dp</item>
<item name="android:layout_margin">5dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
谢谢,欢迎任何帮助或建议!
android textview android-textattributes android-textinputlayout
我正在登录屏幕上工作,我想在其中使用以下视图实现材料编辑文本:
以下是我的代码:
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
style="@style/ThemeOverlay.MaterialComponents.TextInputEditText.OutlinedBox"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="This is Hint"/>
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
但是 OutlinedBox 没有出现。这是它的外观:
请帮忙。
android android-edittext material-design android-textinputlayout androidx
TextInputLayout如果EditText聚焦与否,我需要更改密码切换的颜色。我已经这样做了,但它不起作用。颜色总是等于浅灰色(从状态聚焦 = 假)
布局
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:passwordToggleEnabled="true"
app:passwordToggleDrawable="@drawable/password_toggle_selector"
app:passwordToggleTint="@color/color_password_toggle">
<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
android:inputType="textPassword" />
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
color_password_toggle
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/color_green" android:state_checked="true" />
<item android:color="@color/color_grey" android:state_focused="true" />
<item android:color="@color/color_light_grey" android:state_focused="false" />
Run Code Online (Sandbox Code Playgroud)
password_toggle_selector
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_eye" android:state_checked="true />
<item android:drawable="@drawable/ic_eye_off" />
Run Code Online (Sandbox Code Playgroud)
android material-design android-textinputlayout material-components material-components-android