这种方法有多慢,真的吗?我有一个 ListView 和一个自定义适配器,它使用以下示例 XML 填充我的列表:
<RelativeLayout>
<TextView />
<View />
<TextView />
<RelativeLayout>
<View android:id="@+id/1" /> <--Take note of this one
<TextView android:id="@+id/2" /> <--And this one too
</RelativeLayout>
</RelativeLayout>
ListView 本身运行平稳,滚动良好,加载不是真正的问题。ListView 的功能包括在单击行时切换两个嵌套视图(我标记为要注意的视图)的可见性;默认情况下,它们使用以下属性设置:
android:visibility="gone"
我所做的是检查两个视图的可见性并相应地切换它们的可见性状态,例如:
View v = findViewById(R.id.1);
TextView tv = (TextView) findViewById(R.id.2);
if (v.getVisibility() == View.VISIBLE) {
v.setVisibility(View.GONE);
tv.setVisibility(View.GONE);
} else {
v.setVisibility(View.VISIBLE);
tv.setVisibility(View.VISIBLE);
}
现在,这一切都很好,并且没有错误。视图会相应地切换。但这里的问题是,为什么 UI 这么慢?我试过逐行注释掉代码,很明显这两个 setVisibility() 方法是罪魁祸首。它总是那么慢吗,有没有办法可以加快速度?
此外,我不能简单地切换 RelativeLayout 包装器的可见性,我需要能够分别控制两个内部视图。以上只是示例代码,但它与我目前拥有的非常相似。
帮助表示赞赏!
谢谢,雷