【发布时间】:2012-01-10 09:49:28
【问题描述】:
我有一个ListView,我在其中动态填充getView() 方法中的列表项,并结合TextView 和ImageView。
我需要计算getView 中Text 和Image 视图的大小,所以如果View 太大,我可以设置visibility=gone。我正在尝试:
public View getView(int position, View convertView, ViewGroup parent) {
..
View listItem=view.findViewById(R.id.listItem);
ImageView imageView=(ImageView)view.findViewById(R.id.myImg);
TextView textView=(TextView)view.findViewById(R.id.mytxt);
if (imageView.getRight()>listItemText.getRight()) {
imageView.setVisibility(View.GONE);
}
if (textView.getRight()>listItemText.getRight()) {
textView.setVisibility(View.GONE);
}
..
}
但是,由于我在 getView() 内部,因此尚未创建 layout 的值,因此我得到了 View.getRight() 调用的错误值。
任何想法如何做到这一点?
【问题讨论】:
-
你为什么不根据你要放在 TextView 中的字符串的长度来决定呢?
-
因为相同的文本长度可能有不同的实际宽度
-
如何计算listItemtext的整个宽度并减去宽度。如果您的文本视图和图像视图内容对于该特定宽度足够小。显示或隐藏它。只是一个奇怪的问题,您不能省略文本并缩小图像以使其始终显示吗?
标签: android listview layout android-ui