dev*_*v90 9 android android-layout android-edittext android-fragments
我有一个EditText
输入字段.我在其中添加了一个提示.现在我想改变提示文本的大小,但是当我这样做时,它也会影响文本的大小.请指导我如何分别更改提示和文本的大小,并为提示和文本提供不同的字体.
<EditText
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1"
android:textSize="12sp"
android:textColor="#ffffff"
android:fontFamily="sans-serif-light"
android:hint="MM/YY"
android:textColorHint="@color/white" />
Run Code Online (Sandbox Code Playgroud)
Fil*_*sca 30
您可以在资源文件中设置它.
例如:
<string name="hint"><font size="20">Hint!</font></string>
Run Code Online (Sandbox Code Playgroud)
而你的XML:
android:hint="@string/hint"
Run Code Online (Sandbox Code Playgroud)
ear*_*jim 10
提示和文本是独占的,如果其中一个可见,另一个则不可见.
因此,您可以只更改您的属性,EditText
如果它是空的(提示是可见的)或不是(文本可见).
例如:
final EditText editText = (EditText) findViewById(R.id.yourEditText);
editText.addTextChangedListener(new TextWatcher() {
boolean hint;
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(s.length() == 0) {
// no text, hint is visible
hint = true;
editText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12);
editText.setTypeface(Typeface.createFromAsset(getAssets(),
"hintFont.ttf")); // setting the font
} else if(hint) {
// no hint, text is visible
hint = false;
editText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
editText.setTypeface(Typeface.createFromAsset(getAssets(),
"textFont.ttf")); // setting the font
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19282 次 |
最近记录: |