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

问题描述 投票:2回答:1

我正在尝试调整我的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将始终返回0. while循环是在runnable上使用runOnUiThread执行的,在onCreateView方法返回视图之后有效。

java android textview
1个回答
3
投票

试试这个

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
            }
        });
    }
© www.soinside.com 2019 - 2024. All rights reserved.