【发布时间】:2010-10-26 07:32:47
【问题描述】:
我已将 View 膨胀到 PopupWindow 中。此视图包含一个 TextView,我想在运行时在其中放置文本。我需要计算 TextView 使用的行数以调整弹出窗口的大小。为此,我使用 TextView 的 getLineCount() 并在计算行数( myTextView.draw(canvas) )之前绘制 TextView。
但是,当我第一次调用 PopupWindow 时,getLineCount() 返回字符数而不是行数(例如 42 而不是 2)调试参数表明这是因为 TextView 未正确启动:
调试/视图(207):框架={0, 0, 0, 0} 滚动={0, 0} 调试/视图(207):mMeasureWidth=0 mMeasureHeight=0 调试/视图(207):privateFlags={} DEBUG/View(207): frame={0, 0, 0, 0} scroll={0, 0} mText="要显示的文本.."
触发弹出窗口的其余时间(通过用户按下地图图标)视图具有非零参数,然后行数可以正常工作:
DEBUG/View(207):frame={7, 13, 209, 79} 滚动={0, 0} 调试/视图(207):mMeasureWidth=202 mMeasureHeight=66 调试/查看(207):privateFlags={HAS_BOUNDS} DEBUG/View(207): frame={7, 13, 209, 79} scroll={0, 0} mText="text to display.."
作为一种解决方法,我尝试在绘制第一个弹出窗口之前绘制一个不可见的 PopupWindow,即尝试“第一次”使用它。这没有帮助..我还试图使 MapView 无效。
谁能建议如何正确启动视图,以便我可以按应有的方式使用 getLineCount() ?
谢谢! 万尼亚
【问题讨论】:
标签: android textview line-count