我正试图调整我的文本视图以适应一行。

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将始终返回0。while循环在runnable上使用runnuithread执行,runnable在oncreateview方法返回视图后工作。

最佳答案

试试这个

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
            }
        });
    }

09-25 21:46