0

以下の2つのtextViewでギャラリーウィジェットを使用しています。

textView の値を動的に変更するために onItemSelectedListener を追加しました。

    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ミリ秒遅れて更新を投稿することで、一種のハック的な方法で解決しました(スナップバックの期間)。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 に答える