ViewFlipper中的Textview重叠问题..

时间:2012-10-25 05:22:19

标签: android textview viewflipper overlapping

我使用 ViewFlipper 控件来显示来自 left to right 的连续间隔的推文。我在ViewFlipper中为每条推文添加了动态textview。

一切都很好但有时textview重叠。 enter image description here

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

代码:

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 :

这是显示上述问题的另一个快照..

enter image description here

4 个答案:

答案 0 :(得分:2)

我在使用我的应用程序的某些设备上使用ViewFlipper和onFling Gesture时遇到了同样的问题。

通过在我的视图中添加背景颜色,我能够解决问题。在我的情况下,ListViews有重复的重叠文本,所以我只是在每个ListView的xml中添加了一个黑色背景,它为我解决了问题。

android:background="#000000"

这种行为看起来仍然很奇怪,我不确定为什么要修复它。也许这与透明度有关。

答案 1 :(得分:1)

我使用ViewFlipper遇到了同样的问题。我找到原因,看看错误的代码:

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

就我而言,listview addHeader(ViewFlipper)

答案 2 :(得分:0)

尝试

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

使用 FILL_PARENT 代替 WRAP_CONTENT

对我有用。

答案 3 :(得分:0)

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

确保flipInterval时间长于动画时间。

帮助它。