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
}
});
}
我正在尝试调整 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
}
});
}