0

我正在使用下面有两个 textView 的图库小部件。

我添加了一个 onItemSelectedListener 来动态更改 textView 值:

    mGallery.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int position, long arg3) {
            TextView titleView= (TextView) findViewById(R.id.titleView);
            TextView descriptionView= (TextView) findViewById(R.id.descriptionView);
            titleView.setText(title[position]);
            descriptionView.setText(description[position]);           
    }

但是当我翻到画廊时,出现了问题。动画不流畅,如果我删除“setText”语句,则可以正常工作。我只有在 Android 4.0 上才有这个问题。

有办法解决吗?

4

1 回答 1

0

前段时间我遇到了同样的问题。在我看来,它是画廊中的一个错误。我通过延迟 400 毫秒发布更新(快照恢复的持续时间)以一种 hack´ish 的方式解决了它。并将 setCallbackDuringFling 设置为 false,这样它就不会在停止之前触发。

mGallery.setCallbackDuringFling (false);

mGallery.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> arg0, View arg1,
            int position, long arg3) {

   mGallery.postDelayed(new Runnable() {

        @Override
        public void run() {
                TextView titleView= (TextView) findViewById(R.id.titleView);
                TextView descriptionView= (TextView) findViewById(R.id.descriptionView);
                titleView.setText(title[position]);
                descriptionView.setText(description[position]);   
        }
    }, 400);

}
于 2012-06-11T10:12:59.853 回答