我有一个 android 屏幕,它接收用户的电子邮件。下面是代码片段,我想删除出现在文本下方的下划线。
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:hint="@string/email"
android:textColorHint="@color/blueBackground"
app:boxBackgroundColor="@color/input_background"
app:boxCornerRadiusBottomEnd="20dp"
app:boxCornerRadiusBottomStart="20dp"
app:boxCornerRadiusTopEnd="20dp"
app:boxCornerRadiusTopStart="20dp"
app:endIconMode="clear_text"
app:endIconTint="@color/blueBackground"
app:hintTextColor="@color/blueBackground">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/blueBackground"
android:textSize="18sp"
android:layout_margin="8dp" />
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
我曾尝试android:background="@null"和
<item name="colorControlNormal">@android:color/transparent</item>
<item name="colorControlActivated">@android:color/transparent</item>
但它不起作用。
我有TextInputLayout并且TextInputEditText喜欢这个
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/loginUsernameText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/text_input_margin_left_right"
android:layout_marginRight="@dimen/text_input_margin_left_right"
android:layout_marginTop="@dimen/text_input_margin_top_bottom"
android:hint="@string/username"
android:layout_below="@id/loginButtonLogin">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/loginUsername"
android:layout_width="match_parent"
android:padding="5dp"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/loginPasswordText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/text_input_margin_left_right"
android:layout_marginRight="@dimen/text_input_margin_left_right"
android:layout_marginTop="@dimen/text_input_margin_top_bottom"
android:hint="@string/password"
android:layout_below="@id/loginUsernameText">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/loginPassword"
android:layout_width="match_parent"
android:padding="5dp"
android:layout_height="wrap_content"
android:inputType="textPassword"/>
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
这是我的styles.xml 文件
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
<style name="TextAppearance.App.TextInputLayout" parent="@android:style/TextAppearance">
<item …Run Code Online (Sandbox Code Playgroud) android android-layout android-textinputlayout android-textinputedittext
我正在尝试使用Material Design中的TextInputEditText(https://github.com/material-components/material-components-android/blob/master/docs/components/TextInputLayout.md),我得到了运行时异常.
这是运行日志的一部分:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.grigori.materialtextedit, PID: 12036
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.grigori.materialtextedit/com.example.grigori.materialtextedit.MainActivity}: android.view.InflateException: Binary XML file line #9: Binary XML file line #9: Error inflating class com.google.android.material.textfield.TextInputLayout
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: android.view.InflateException: Binary XML file line #9: Binary XML file line #9: Error inflating class com.google.android.material.textfield.TextInputLayout
Caused by: android.view.InflateException: Binary …Run Code Online (Sandbox Code Playgroud) android android-edittext android-textinputlayout android-textinputedittext
我已编译了以下设计库,并在右侧显示密码HIDE/SHOW按钮EditText
编译'com.android.support:design:24.2.1'
<android.support.design.widget.TextInputLayout
android:id="@+id/login_password_text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_normal">
<android.support.v7.widget.AppCompatEditText
android:id="@+id/login_password_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawablePadding="@dimen/spacing_micro"
android:hint="@string/prompt_password"
android:imeActionId="@+id/login"
android:imeActionLabel="@string/action_sign_in_short"
android:imeOptions="actionUnspecified"
android:inputType="textPassword"
android:maxLines="1"
android:text="password" />
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
喜欢:
更新后的
编译'com.android.support:design:25.0.1'
它不可见,为什么?有没有错误?
请指导.
android android-edittext android-textinputlayout android-textinputedittext
我试图更改EditText光标指针颜色(从原色蓝色到白色),但没有解决方案适用于我的项目.我试图开发演示项目,其中相同的代码工作正常.这段代码适用于> = android 5.0
我不知道,我的值会覆盖哪个属性.我有两个选项可以解决这个问题: -
1.找到控制该颜色值的属性.
2.页面加载时(在onViewCreated中)通过java代码更改颜色值.
请建议如何解决此问题.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="my_text_layout_style">
<item name="android:textColor">#FFF</item>
<item name="android:textColorHint">#FFF</item>
<item name="colorAccent">#FFF</item>
<item name="colorControlNormal">#FFF</item>
<item name="colorControlActivated">#FFF</item>
<item name="colorControlHighlight">#FFF</item>
</style>
<style name="my_edit_text_style">
<item name="colorAccent">#FFF</item>
<item name="android:editTextStyle">@style/MyEditTextStyle</item>
</style>
<style name="MyEditTextStyle" parent="Widget.AppCompat.EditText" />
</resources>
Run Code Online (Sandbox Code Playgroud)
<?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"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/base_disable_btn_bg_color"
android:orientation="vertical">
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:hint="just a hint"
app:hintTextAppearance="@style/my_text_layout_style"
android:theme="@style/my_text_layout_style"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:theme="@style/my_edit_text_style"
android:layout_height="wrap_content" />
</android.support.design.widget.TextInputLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
AppLinearLayout appLinearLayout = (AppLinearLayout) view.findViewById(R.id.some_id);
EditText editText = new EditText(new ContextThemeWrapper(getContext(), …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
所以我试图改变 上标签的背景颜色TextInputLayout/EditText。大多数其他问题似乎都涉及文本的颜色,但我观察到的标签的默认功能是“OutlinedBox”样式上的标签背景与层次结构中其上方布局的背景颜色相匹配:
正如你所看到的,在前。1、上面的布局TextInputLayout是偏灰色的,所以LabelTextView 背景也变成灰色的。
在前。2、上面的布局TextInputLayout是白色的,所以Label Text背景也变成白色。因为这是在没有我任何输入的情况下发生的变化(它没有使用像“colorAccent”这样的颜色,它全面应用,而是根据布局背景颜色使用不同的颜色)。
我想找出的是,是否有一个我可以维护/编辑的颜色属性,最好是通过样式,这将允许我选择该颜色,而不是将其默认为层次结构中其上方的布局所具有的任何颜色?
我尝试在样式中设置各种颜色来尝试覆盖默认行为,但尚未找到这样做的颜色。
这是金额的 TextInputLayout/EditText。
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tilAmount"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width="0dp"
android:layout_height="55dp"
android:layout_marginRight="@dimen/margin_between_boxes"
android:layout_weight="1"
android:hint="@string/et_amount"
app:boxBackgroundColor="@color/white"
app:boxStrokeColor="@color/editText_background"
app:boxStrokeWidth="3dp"
app:hintTextAppearance="@style/TextLabel">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/etAmount"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fontFamily="@font/neue_haas_grotesk_display_regular"
android:inputType="number"
android:maxLength="7"
android:paddingLeft="13dp"
android:textAlignment="viewStart"
android:textColorHint="@android:color/black"
android:textSize="14sp"
android:layout_gravity="start" />
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
这是用于hintTextAppearance 的样式
<style name="TextLabel" parent="TextAppearance.AppCompat">
<!-- Hint color and label color in FALSE state -->
<item name="android:textColorHint">@color/label_text</item>
<item name="android:textColor">@color/label_text</item>
<item name="android:textSize">12sp</item>
<!-- Label color in TRUE state and bar color FALSE and …Run Code Online (Sandbox Code Playgroud) java android label android-textinputlayout android-textinputedittext
Android文档指出:
借助Android 7.1(API级别25),Android SDK包含了Commit Content API,该API为IME提供了一种通用方式,可将图像和其他丰富内容直接发送到应用程序中的文本编辑器。
但是,当我使用React Native的TextInput组件并从Android的键盘中选择一个GIF时,会收到以下消息(请参见屏幕截图):
此文本字段不支持从键盘插入GIF。
我如何在React Native应用程序中添加对此功能的支持?理想情况下,我想要一个提供回调以处理接收的URI的组件commitContent()。
android android-softkeyboard react-native android-7.1-nougat android-textinputedittext
我用材料。我将为 TextInputLayout 使用一种颜色作为背景,但类似于下面的颜色!提示背景未更改。我使用了样式并想进行更改,但没有奏效。在布局本身中,我尝试再次应用更改!如何解决这个问题?
笔记
图片中标签用户名的背景不透明,它覆盖了一些TextInputEditText
在build.gradle 中
implementation 'com.google.android.material:material:1.1.0'
Run Code Online (Sandbox Code Playgroud)
在风格
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="textAppearanceSubtitle1">@style/TextAppearance.App.Subtitle1</item>
<item name="textAppearanceCaption">@style/TextAppearance.App.Caption</item>
<item name="shapeAppearanceSmallComponent">@style/ShapeAppearance.App.SmallComponent</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.MaterialComponents.Dark.ActionBar"/>
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.MaterialComponents.Light"/>
<style name="TextAppearance.App.Subtitle1" parent="TextAppearance.MaterialComponents.Subtitle1">
<item name="colorControlActivated">@color/white</item>
<item name="android:colorControlActivated">@color/white</item>
</style>
<style name="TextAppearance.App.Caption" parent="TextAppearance.MaterialComponents.Caption">
<item name="android:textColorTertiary">@color/white</item>
<item name="android:textColorTertiaryInverse">@color/white</item>
<item name="colorControlActivated">@color/white</item>
<item name="android:colorControlActivated">@color/white</item>
</style>
<style …Run Code Online (Sandbox Code Playgroud) android material-design android-textinputlayout android-textinputedittext
我将数据绑定与 TextInputLayout/TextInputEditText 组合一起使用,如 xml 中所示。
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/lastname_input_layout"
style="@style/TextInputLayout"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:endIconMode="clear_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/firstname_input_layout"
app:visible="@{viewModel.showFields}">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/lastname_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/lastname"
android:inputType="textCapWords"
android:text="@={viewModel.lastName}"
android:textAppearance="@style/TextAppearance.Input" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/email_input_layout"
style="@style/TextInputLayout"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:endIconMode="clear_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/lastname_input_layout"
app:visible="@{viewModel.showFields}">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/email_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@{viewModel.watchMediaTextHint}"
android:inputType="@{viewModel.watchMediaInputType}"
android:text="@={viewModel.mediaText}"
android:textAppearance="@style/TextAppearance.Input" />
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这两个字段在理论上是相同的,唯一的区别是其中一个字段具有hint通过字符串资源给出的文本,另一个字段具有数据绑定。两者具有相同的样式、文本外观等,但是使用TextInputEditText数据绑定的提示具有不同的颜色。此外,当视图获得焦点时,标签不会像第一个字段那样动画化。
使用字符串资源设置提示可以使此行为恢复正常,对于为什么会发生这种异常有什么想法吗?我更愿意使用数据绑定而不是编程解决方案来解决这个问题。
谢谢。
android ×10
data-binding ×1
java ×1
label ×1
material-components-android ×1
react-native ×1
viewmodel ×1