ListView和TranslateAnimation负值不是其他人下的刷新元素

时间:2012-03-14 16:52:26

标签: android listview translate-animation

我在toXDelta中应用了一个否定的TranslateAnimation,当我滚动到列表中时会出现错误,因为这是另一个列表。

你可以在这个screencapture中看到我的问题enter image description here

Ther是我的橙色列表的XML

<LinearLayout
    android:id="@+id/ll_list_ghm"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:background="@drawable/panel_ghm"
    android:orientation="vertical"
    android:paddingLeft="30dip"
    android:paddingRight="20dip"
    android:paddingTop="40dip" >

    <ListView
        android:id="@+id/lv_list_ghm"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    </ListView>
</LinearLayout>

我在LinearLayout

上应用翻译
ll_list_ghm.startAnimation(expend(500, true));
private Animation expend(int anim_ms, boolean is_ghm) {
    Animation collapse = new TranslateAnimation(400, -20, 0, 0);
    collapse.setDuration(anim_ms);
    collapse.setFillAfter(true);
    return collapse;
}

toXDelta等于0或正整数时,没有问题。 有没有人有过这个bug?

感谢大家阅读和关注ma问题。

1 个答案:

答案 0 :(得分:0)

我找到了另一种解决方案,即在代码上设置负余量。

RelativeLayout.LayoutParams lp_list_ghm = new RelativeLayout.LayoutParams(metrics.widthPixels / 4, LayoutParams.FILL_PARENT);
lp_list_ghm.addRule(RelativeLayout.RIGHT_OF, R.id.ll_list_cmd);
lp_list_ghm.setMargins(-20, 0, 0, 0);
ll_list_ghm.setLayoutParams(lp_list_ghm);

但如果你有其他解决方案,我很感兴趣:)