粘贴文本后,编辑文本工作异常



当我从网站复制电子邮件并将其粘贴到编辑文本中时,它带有丰富的格式,然后我试图删除格式

public void afterTextChanged(Editable string)
{
CharacterStyle[] toBeRemovedSpans = string.getSpans(0, string.length(),
MetricAffectingSpan.class);
for (int index = 0; index < toBeRemovedSpans; index++)
string.removeSpan(toBeRemovedSpans[index]);
}
}

此图像在格式化之前

但这对我来说并不奏效,就像他们从开始到文本有一个巨大的差距。此图像是在应用格式化之后

我浏览了整个互联网来阻止它,但并没有发现任何东西。我尝试从编辑文本中清除所有跨度,但这使编辑文本比以前慢了很多。

<LinearLayout
android:id="@+id/email_signup_form"
android:layout_width="match_parent"
android:layout_marginTop="20dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_height="match_parent"
android:orientation="vertical">
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/SIZE_50"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
app:hintTextAppearance="@style/MyAppearance">
<EditText
android:id="@+id/first_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/prompt_fname"
android:inputType="textPersonName"
android:maxLength="64"
android:maxLines="1"
android:singleLine="true"
/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
app:hintTextAppearance="@style/MyAppearance">
<EditText
android:id="@+id/last_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/prompt_lname"
android:inputType="textPersonName"
android:maxLines="1"
android:maxLength="64"
android:singleLine="true" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:layout_height="wrap_content"
app:hintTextAppearance="@style/MyAppearance">
<EditText
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/prompt_email"
android:inputType="textEmailAddress"
android:maxLines="1"
android:singleLine="true" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/passwordText"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
app:passwordToggleEnabled="true"
app:hintTextAppearance="@style/MyAppearance">
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/prompt_password"
android:inputType="textPassword"
android:maxLines="1"
android:singleLine="true" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/retypePasswordText"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
app:passwordToggleEnabled="true"
app:hintTextAppearance="@style/MyAppearance">
<EditText
android:id="@+id/cnf_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/prompt_password_cnf"
android:inputType="textPassword"
android:maxLines="1"
android:singleLine="true" />
</com.google.android.material.textfield.TextInputLayout>
<Button
android:id="@+id/email_sign_up_button"
style="?android:textAppearanceSmall"
android:layout_width="265dp"
android:layout_gravity="center"
android:background="@drawable/ripple_effect"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:textColor="#fff"
android:text="@string/action_sign_up"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal|bottom">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/characters"/>
</LinearLayout>

</LinearLayout>

这个问题适用于每个编辑文本。问题是,当我在粘贴文本之前添加文本,编辑文本时没有任何间隙,或者在粘贴文本后任何东西,它的工作原理很奇怪

你能发布你的布局代码吗?我认为EditText的文本对齐是"居中"的,你只需要删除它。

请从TextInputLayout中删除以下代码

android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"