4

コントロールを使用ViewFlipperして、 から連続間隔でツイートを表示しましたleft to right。ViewFlipper のツイートごとに動的テキストビューを追加しました。

すべてうまくいきますが、テキストビューが重なることがあります。 ここに画像の説明を入力

この奇妙な行動の理由は何ですか?

コード:

for (int i = 0; i < tweets.length(); i++) {
            tweet = tweets.getJSONObject(i).getString("title")+"&nbsp;&nbsp; tweet on &nbsp;"+tweets.getJSONObject(i).getString("pubDate");         
            tv = new TextView(context);
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                    LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
                params.weight = 1.0f;
                params.gravity=48;

            tv.setLayoutParams(params);
            tv.setGravity(Gravity.CENTER);

            tv.setTextSize(22);
            tv.setTextColor(ColorStateList.valueOf(Color.WHITE));
            tv.setSingleLine();

            //tv.setTextColor(getREs)
            tv.setText(tweet);
            flipper.addView(tv);
         }      

        flipper.setInAnimation(inFromRightAnimation(1500));        
        flipper.setOutAnimation(outToLeftAnimation(1500));
        flipper.startFlipping();



public static Animation inFromRightAnimation(int duration) {
        Animation inFromRight = new TranslateAnimation(
        Animation.RELATIVE_TO_PARENT,  +1.0f, Animation.RELATIVE_TO_PARENT,  0.0f,
        Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
        );
        inFromRight.setDuration(duration);
        inFromRight.setInterpolator(new AccelerateInterpolator());
        return inFromRight;
    }

public static Animation outToLeftAnimation(int duration) {
        Animation outtoLeft = new TranslateAnimation(
          Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,  -1.0f,
          Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
        );      
        outtoLeft.setDuration(duration);
        outtoLeft.setInterpolator(new AccelerateInterpolator());
        return outtoLeft;
    }

EDIT :

上記の問題を示す別のスナップショットを次に示します。

ここに画像の説明を入力

4

4 に答える 4

2

アプリを使用して一部のデバイスで ViewFlipper と onFling Gesture を使用すると、同じ問題が発生しました。

ビューに背景色を追加することで、問題を解決できました。私の場合、重複したテキストが重複していたのは ListViews だったので、各 ListView の xml に黒い背景を追加するだけで問題が解決しました。

android:background="#000000"

この動作は依然として非常に奇妙に思えますが、なぜこれが修正されたのか正確にはわかりません。透明度が関係しているのかもしれません。

于 2013-02-15T19:15:01.550 に答える
1

ViewFlipper を使用して同じ問題が発生しました。理由がわかりました。間違ったコードを見てください。

public void setDuration(int ms) {
    mDurationTime = 1000*ms;
    this.setFlipInterval(mDurationTime);//don't do this
}

私の場合、listview addHeader(ViewFlipper)

于 2015-12-06T12:56:18.420 に答える
0

試す

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                    LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);

WRAP_CONTENTの代わりにFILL_PARENTを使用してください

私のために働いた。

于 2013-02-16T19:31:59.077 に答える