0

我试图将 EditText 限制为最多 3 行,如果用户继续输入,字体将改变大小以适应三行上的所有内容。

但是,一旦我超过 3 行,它就会在原始字体大小和每次键盘输入后计算出的字体大小之间交替。

这就是我正在做的事情:

 editText.addTextChangedListener(new TextWatcher()
 {
        private String inputText;

        public void beforeTextChanged(CharSequence charSequence, int i,int i1, int i2) 
        {};

        public void onTextChanged(CharSequence charSequence, int i, int i1,int i2) 
        {};

        public void afterTextChanged(Editable ed)
        {
            int lineCount = editText.getLineCount();

            if(lineCount>=3)
            editText.setTextSize((float) 45/lineCount);
        };

45 就是我现在正在使用的代码。

4

2 回答 2

0

这就是我用来限制 1 行和最多 3 行的方法。当它越过 1 行时,也环绕文本。

android:minLines="1"
android:maxLines="3"
android:ellipsize="none"
android:scrollHorizontally="false"
android:text="sample text, a lot of text to encourage wrap text"
于 2013-07-20T04:59:11.020 回答
0

问题是 ">=" 符号....呃。我现在使用“>”来判断它何时超过 3,并正在研究一种解决方法,以根据它超过 3 的次数来减小大小。完成后我会发布我的修复。

于 2013-07-20T01:05:05.270 回答