- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的工具栏中使用了一个 EditText
View ,当点击“检查”图标时,应用程序将检查所有字段是否为空。如果为空,则调用 setError()
方法。但是弹出消息看起来很奇怪(在下图中)。
另一个问题是 EditText
View 在根布局中,当调用 setError()
时, View 自动向上滚动(Appbarlayout
被隐藏)。如何让布局正确地在 View 下方?
这是布局设计的问题吗?
布局.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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="match_parent"
android:orientation="vertical">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<android.support.v7.widget.Toolbar
android:id="@+id/tool_bar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ActionbarStyle"
app:layout_scrollFlags="scroll|enterAlways|snap">
<EditText
android:id="@+id/et_ItemName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/item_name"
android:inputType="text|textAutoCorrect"
android:maxLength="20"
android:textStyle="bold">
<requestFocus />
</EditText>
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/layout_padding"
android:paddingLeft="@dimen/layout_padding"
android:paddingRight="@dimen/layout_padding"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
app:srcCompat="@drawable/ic_money_black_24dp" />
<EditText
android:id="@+id/et_Dollar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="end|right"
android:inputType="numberDecimal"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
app:srcCompat="@drawable/ic_sort_black_24dp" />
<Button
android:id="@+id/btn_SelectCategory"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:gravity="end|right|center_vertical"
android:hint="@string/select_category" />
</LinearLayout>
<EditText
android:id="@+id/et_Note"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@drawable/background_border"
android:gravity="top|left"
android:hint="@string/note"
android:inputType="textMultiLine"
android:minLines="1"
android:padding="@dimen/TextPAdding" />
<include
android:id="@+id/view_image_container"
layout="@layout/layout_add_photo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/widget_padding" />
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
最佳答案
您可以使用 Snackbar 作为验证,它看起来好多了并且有自定义,因为您可以在特定时期显示正确的消息时间...示例:在 textChangedListener 上或在按钮单击上-->
submitBT = (Button) findViewById(R.id.submitBT);
submitBT.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (loginET.getText().toString().isEmpty() || loginET.length() == 0 || loginET.length() > 50) {
Snackbar.make(view, "Please Enter Username/Email", Snackbar.LENGTH_SHORT).show();
return;
}
if (passwordET.getText().toString().isEmpty() || passwordET.length() == 0 || passwordET.length() > 50) {
Snackbar.make(view, "Password", Snackbar.LENGTH_SHORT).show();
}
}
});
你也可以使用 textChangedListener...而且view不会像seterror那样自动向上滚动
关于android - EditText.setError() 的弹出消息布局看起来很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47975548/
我正在使用 setError 方法来显示当焦点从该字段移开时 EditText 字段是否被错误填充。如果它被正确填充,我会显示一个图标:drawable.validated 这是我的代码: @Over
我有这几行代码来验证表单输入。然而,它不输出任何东西——只是一个空白框。请问我错过了什么? public void onClick(View view) { if( view.getId(
我已经在两个编辑文本上实现了设置错误的代码。 首先获取任何没有空值或空值的字符串。 其次获取任何没有 null 或空值的字符串,并且必须有一些 Double 值。 代码如下 import java.u
当我尝试验证我的用户名和密码时,我收到一条错误消息,提示未找到 setError,你能帮我找出我的错误吗?我在 androidstudio1.2.2 中执行了此操作 登录.java package c
我的 android 应用程序中有以下页面(我无法截取该页面的屏幕截图,所以我只是画了它):我有 edittexts 并且我使用 edittext 的 showError 属性。 然后,在程序的某个时
我的 xml 代码的密码字段部分: ... ... 调用 setError() 时如何删除这个覆盖的红色感叹号? [更新样式] @color/edit
我对 Android 应用程序中的 EditText 进行了验证。错误消息按预期弹出,但不显示默认错误图标。 if(users.getText().toString().isEmpty()){
我创建了一个登录页面,该页面支持 2 种不同的语言(英语和法语)。 当我从一种语言翻译到另一种语言时,该页面运行良好。 但问题是,当我切换到法语时,setError 消息不再出现用于字段验证。 此代码
我有一个跨字段验证方法,如果以下任一结果为真,该方法应该会失败: country == 'United States'和stateSelect为空 country != 'United States'
我是 android 的新手,遇到以下问题:这是代码: base.OnCreate(bundle); var layout = FindViewById(Resource.Id.la
在按钮单击事件上对编辑文本执行验证检查。当验证失败时,错误代码图标显示在编辑文本框中的正确位置,但其包含字符串的箭头始终显示在其所需位置附近的一个位置。以下是为了更好地理解的快照: 代码如下: els
我在 EditText 上遇到 setError() 问题。打开 Activity 时,它会检查某些字段是否为空,如果为真,则在其上设置错误消息。但是,感叹号图标仅在我在字段中写入一些文本然后将其删除
使用 Kitkat,但也尝试使用 jellybean,但无法显示自定义错误图标。 我将这两个重载方法用于 setError(...) from Android doc我只是在做非常简单的代码:
我在 ViewPager 中有一个 Fragment。 在该 fragment 中,我有几个 EditText 的 OnTextChanged 监听器(添加到 onViewCreated 方法中)执行
我在我的工具栏中使用了一个 EditText View ,当点击“检查”图标时,应用程序将检查所有字段是否为空。如果为空,则调用 setError() 方法。但是弹出消息看起来很奇怪(在下图中)。 而
如何在无法聚焦的 EditText 中使用 setError 显示文本错误?重要的是用户不要修改此 EditText,它将针对应用程序进行修改。也许我有另一个不同于 focusable=false 的
在有多个线程调用 Console.Write 的正在运行的程序中,我可以调用 Console.SetError 来设置新流吗? IE。这是线程安全的吗? 背景:我有一个可以连续运行数天的程序,它会将大
我有 EditText在其中写入 XML:android:drawableRight="@drawable/promotion_create_promotion_plus_icn" 当setError
我目前正在使用一个 Android 应用程序,我在其中使用 setError 方法进行 EditText 验证。问题是我想更改方法内文本的颜色。 EditText UserNameEdt, Pass
这是我的设置 这是java代码 final EditText inputNo = (EditText)findViewById(R.id.inputNo); inputNo.addTex
我是一名优秀的程序员,十分优秀!