我在xml中隐藏了一个带有负marginTop的Imageview。这个视图从开始时的负面位置滑入屏幕。
但是当我尝试以编程方式隐藏它时,它只能设置为y位置0。
我试图将保证金设置为负数,如此
ImageView tip = (ImageView) findViewById(R.id.tipscreen);
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) tip.getLayoutParams();
params.setMargins(0, 0-350, 0, 0);
tip.setLayoutParams(params);
//and i've also tried
tip.setY(-350);
没有任何作用,它只是将位置设置为0。
所以我的问题是我如何设置图像视图的y位置到-350?
答案 0 :(得分:1)
您不必处理负数。如果您尝试使视图滑入,则可以将其放置在您想要的位置并使用动画。从顶部滑入不是默认动画,但您可以编写自己的动画。
然后,您可以在此动画中使用View.setVisible(View.VISIBLE)
和View.setVisible(View.INVISIBLE)
来获得所需的效果。您应该查看的动画是与TranslateAnimation
相关的动画。可以在Animating Layout Changes URL处引用动画视图以获取更多信息。
答案 1 :(得分:0)
您可以使用android.view.View.setTop(int top)而不是设置边距。
答案 2 :(得分:0)
我解决了。
事实证明,如果你在setY()方法中加上一个负数,它会从当前位置减去它。所以我只是将其改为
tip.setY(0-350);
我现在正在哭泣和大笑,希望其他人可能会发现这对将来有用! :&#39)