android edittext以编程方式更改textsize时更改位置

piv4azn7  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(215)

我有一个大字体的edittext,我的想法是当它接近屏幕边框时减小大小,所以我通过编程更改为文本大小,但结果是文本在我的视图中的位置也发生了变化。我怎样才能防止这种情况?
这是居中的文本

更改大小后

布局:

<androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@id/main_user_container"
        app:layout_constraintBottom_toTopOf="@id/reason_container"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" >

        <LinearLayout
            android:id="@+id/text_container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="horizontal">

    <EditText
        android:id="@+id/Amount"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:cursorVisible="false"
        android:digits="0123456789.,"
        android:inputType="numberDecimal"
        android:maxLength="20"
        android:singleLine="true"
        android:textSize="72sp"
        android:typeface="normal"
        tools:text="0" />
</LinearLayout>
    </androidx.constraintlayout.widget.ConstraintLayout>

我在这里改变尺寸:

@Override
        public void afterTextChanged(final Editable editable) {
            if (mAmountText.getText().length() > 7) {
                mAmountText.setTextSize(getResources().getDimension(R.dimen.small));
            } else {
                mAmountText.setTextSize(getResources().getDimension(R.dimen.big));
            }
        }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题