Boy*_*Boy 5 performance android datepicker textview
由于Android不支持显示日期,我在我的布局中添加了TextView.
在DatePicker上我放了一个onDateChangedListener.当日期改变时,我确定星期几,然后通过处理程序设置它以确保它在UI线程上完成:
// this is being called when the date changes on the DatePicker
public void onDateChanged(DatePicker view, final int year,
final int monthOfYear, final int dayOfMonth) {
String dayOfTheWeek = null;
// some code here to set the 'dayOfTheWeek' string
h.sendMessage(h.obtainMessage(0, dayOfTheWeek));
}
final Handler h = new Handler() {
@Override
public void handleMessage(Message msg) {
dayOfWeekTextView.setText((String)msg.obj);
}
};
Run Code Online (Sandbox Code Playgroud)
我的问题:当我滚动窗口小部件中的日子(Android 4.0 U I)时,它并不顺畅!我检查问题是什么,这不是我确定String应该是什么的方式,它实际上是setText()
在Handler中.评论那部分uit,一切都很好.同样在那里设置硬编码文本(dayOfWeekTextView.setText("SOMETHING');
)会产生同样的问题.它紧张不安DatePicker
.
是否setText()
真有那么大的作用吗?奇妙清单显示了星期几,并且运行平稳,但我无法知道他们是如何做到的.
我只测试了它HTC One X
.有人有想法吗?
编辑:
我发现了为什么它在Wunderlist中很顺利!我使用的是DialogFragment.您可以在对话框上设置标题,这是Wunderlist使用的而不是TextView.所以我打算使用它(看起来也更好;))
所以当做'getDialog().setTitle(dayOfWeek)时,没有问题.问题仍然存在:为什么setText在UI线程上变得缓慢......?
解决方案
一个非常性感和肮脏的解决方案是创建 7TextView
并切换其中一个的可见性。直到一周延长到 8 天的那一天,这种方法应该会带来更好的性能。
另外,这可能是由于文本视图的布局参数造成的。您可能想给它一些额外的空间,或者换句话说,setText 不应该引起布局。我不确定这是否正在发生。