【问题标题】:Android Error in Text_Input_Layout EdittextText_Input_Layout Edittext 中的 Android 错误
【发布时间】:2017-08-27 21:50:06
【问题描述】:

有谁知道我可以如何更改错误浮动标签中提到的部分的位置(如附图所示)?在图片中它位于左侧,但我希望它位于编辑文本的右侧(因为我的母语)。我尝试了重力和布局重力,但都没有成功。提前致谢 。

 <android.support.design.widget.TextInputLayout
android:id="@+id/numid"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
app:errorEnabled="true"
app:errorTextAppearance="@style/myerror"
android:layout_gravity="center"
    app:hintTextAppearance="@style/TextAppearance.AppCompat.TextInputLayout"
style="@style/EditScreenTextInputLayoutStyle">

 <android.support.v7.widget.AppCompatEditText
    android:id="@+id/tie"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:inputType="number"
    android:gravity="right"
    android:textAlignment="gravity"
    android:hint="@string/hint2"
    android:textDirection="rtl"
    />

  <style name="TextAppearance.AppCompat.TextInputLayout" parent="@android:style/TextAppearance">
<item name="android:textColor">#ff0000</item>
<item name="android:layout_gravity">right</item>
<item name="android:textColorHint">#736f6e</item>
<item name="android:gravity">right</item>

<style name="EditScreenTextInputLayoutStyle" parent="Theme.AppCompat.Light">
<item name="colorControlNormal">#000</item>
<item name="colorControlActivated">#000</item>
<item name="colorControlHighlight">#ff0000</item>
<item name="colorAccent">#ffff02</item>
<item name="android:textColorHint">#0000ff</item>
  </style>

<style name="myerror" parent="TextAppearance.Design.Error">
    <item name="android:textColor">#ff0000</item>
    <item name="android:background">#000000</item>
    <item name="android:gravity">center</item>

</style>

【问题讨论】:

  • 分享你的布局文件。
  • android:supportsRtl ????
  • @IntelliJ Amiya。 getWindow().getDecorView().setLayoutDirection(View.Layout_Di‌​rection_RTL)。如何将它用于编辑文本?
  • @buzzingsilently。我把我的 layout.xml 放在了问题中。请帮我从右到左显示错误。 Tnx

标签: android user-interface android-edittext apk


【解决方案1】:

试试这个:

    Drawable err_indiactor = ContextCompat.getDrawable(this,R.drawable.indicator_input_error);
    yourEditText.setCompoundDrawablesWithIntrinsicBounds(null, null, err_indiactor, null);

这是可绘制的indicator_input_error

【讨论】:

【解决方案2】:

下面的代码适用于你

public class MainActivity extends Activity {
    EditText use, pass;

    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        use = (EditText) findViewById(R.id.edituse);
        pass = (EditText) findViewById(R.id.editpas);

        button = (Button) findViewById(R.id.click);
        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                final String use1 = use.getText().toString();
                final String pass1 = pass.getText().toString();

                if (!use1.matches("") && !pass1.matches("")) {
                    Toast.makeText(getApplicationContext(), "Succes",
                            Toast.LENGTH_SHORT).show();

                    use.setError(null);
                    pass.setError(null);

                } else if (use1.matches("")) {
                    use.setError("This field can not be blank");
                } else if (pass1.matches("")) {
                    pass.setError("This field can not be blank");
                }
            }
        });

    }
}

还有 XML 文件

<RelativeLayout 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"
    tools:context="${relativePackage}.${activityClass}" >

    <TextView
        android:id="@+id/test"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Test"
        android:textSize="25sp"
        android:gravity="center" />

    <EditText 
        android:layout_below="@+id/test"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/edituse"/>
     <EditText 
        android:layout_below="@+id/edituse"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editpas"
         />
<Button 
    android:id="@+id/click"
    android:layout_below="@+id/editpas"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Click"/>

</RelativeLayout>

希望这会有所帮助...对于英语,这很有效。对于您的语言,它是从右到左的书写,那么它可能是错误消息的左对齐问题.... ...别担心尝试这个。

【讨论】:

  • 谢谢,但我的问题完全是关于将浮动标签放在右侧,因为我的语言是从右到左书写的。
猜你喜欢
  • 2017-05-04
  • 1970-01-01
  • 1970-01-01
  • 2011-06-12
  • 2014-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多