textView.getLineCount() returns 0 在 setTextSize 方法之后

textView.getLineCount() returns 0 after setTextSize method

我正在尝试调整 textview 的大小以适合 1 行。

while (titleText.getLineCount() > 1) {
    float scaledDensity = ManagerStorage.mainActivity.getResources().getDisplayMetrics().scaledDensity;
    titleText.setTextSize(titleText.getTextSize() / scaledDensity - 0.5f);
    Log.i("lines", "" + titleText.getLineCount());
    }

但是,while 循环只执行一次。在 setTextSize 方法之后,getLineCount 将始终 return 0。while 循环在 runnable 上使用 runOnUiThread 执行,在 view 被 onCreateView 方法 returned 后工作。

试试这个

while (titleText.getLineCount() > 1) {
        float scaledDensity = ManagerStorage.mainActivity.getResources().getDisplayMetrics().scaledDensity;
        titleText.setTextSize(titleText.getTextSize() / scaledDensity - 0.5f);

        titleText.post(new Runnable() {
            @Override
            public void run() {
                int lineCount = titleText.getLineCount();
                Log.i("lines", "" + titleText.getLineCount());
                // Use lineCount here
            }
        });
    }