4

我已经使用ViewFlippercontrol 来显示具有连续间隔的推文left to right。我在 ViewFlipper 中为每条推文添加了动态文本视图。

一切正常,但有时 textview 重叠。 在此处输入图像描述

这种奇怪行为的原因是什么?

代码:

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);

使用FILL_PARENT而不是WRAP_CONTENT

对我很好。

于 2013-02-16T19:31:59.077 回答
0

这是因为 InAnimation 和 OutAnimation 的持续时间比 flipInterval 时间短。

只要确保flipInterval 时间长于动画时间即可。

帮帮它。

于 2016-07-13T02:24:51.163 回答