xamarin 如何在TextInputLayout中更改提示文本大小

nx7onnlm  于 2023-06-27  发布在  其他
关注(0)|答案(3)|浏览(164)

假设我想更改文本大小。我用代码来做,它看起来像这样:

_textInputLayout.EditText.SetTextSize(Android.Util.ComplexUnitType.Dip, 40);

当我在条目中写入文本时,它看起来像40 dip文本。但是当输入为空时,提示文本看起来像16- 18 dip。
有没有办法改变提示文字的大小?

lymnna71

lymnna711#

可以通过样式和调用SetHintTextAppearance来更改最终提示大小/浮动标签大小,如下所示:

_nativeView.SetHintTextAppearance(App6.Droid.Resource.Style.MyTextInputLayout);

其中MyTextInputLayout是沿着以下路线的东西:

<style name="MyTextInputLayout" parent="@android:style/TextAppearance">
    <item name="android:textColor">@color/blue</item>
    <item name="android:textSize">44sp</item>
</style>

但是,此样式的textSize仅应用于最终目的地,当您开始在中输入一些文本时。
从我所能看到的,包括对象的属性,它似乎不可能改变提示的起始字体大小不幸的是在那一刻?
在这里,EditText是暴露的,你可以改变那里的东西。Hint部分根本不由它处理,而是由TextInputLayout处理。似乎没有暴露的对象可以访问专门针对Hint的自定义。

8ehkhllq

8ehkhllq2#

你可以通过在字符串资源中设置一个大小来实现。
例如:

<string name="edittext_hint"><font size="15">Hint here!</font></string>

然后在你的XML中写

android:hint="@string/edittext_hint"

这将导致提示的文本变小,但输入文本的原始大小不变。
或者像这样:

MYEditText.addTextChangedListener(new TextWatcher(){

            @Override
            public void afterTextChanged(Editable arg0) {
                // TODO Auto-generated method stub

            }

            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1,
                    int arg2, int arg3) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onTextChanged(CharSequence arg0, int start, int before,
                    int count) {
                if (arg0.length() == 0) { 
                    // No entered text so will show hint
                    editText.setTextSize(TypedValue.COMPLEX_UNIT_SP, mHintTextSize);
                } else {
                    editText.setTextSize(TypedValue.COMPLEX_UNIT_SP, mRealTextSize);
                }
            }
    });
wd2eg0qa

wd2eg0qa3#

你只需要使用"app:hintTextAppearance="@style/TextInputLayoutHintText"到你的TextInputEditText,在风格上保持你所需要的任何大小
例如:<style name="TextInputLayoutHintText"> <item name="android:textSize">@dimen/text_size_7</item> </style>

相关问题