0
我得到了一个RelativeLayout
的布局,其可见度为GONE
。此rl是在将可见性设置为visible
时出现在碎片底部的带有按钮的条形图的布局。虽然RL仍然不可见,但有2个按钮,当我将其设置为可见时,RL覆盖按钮。以编程方式设置视图Y位置
我想要做的只是将按钮向上移动,使其变得可见。我试图做到这一点:
rl.setVisibility(View.VISIBLE);
rl.post(new Runnable()
{
int dpToPx(final int dp)
{
return (int) (dp * getResources().getSystem().getDisplayMetrics().density + 0.5f);
}
@Override
public void run() {
int h = rl.getHeight(); //height is ready
h = dpToPx(h);
ImageButton button = (ImageButton)inflate.findViewById(R.id.button1);
float y = button.getY();
button.setY((float)h+y - 1100);
ImageButton button2 = (ImageButton)inflate.findViewById(R.id.button2);
y = button2.getY();
button2.setY((float)h+y);
}
});
与-1100按钮(这个数字只是一些我检查,看看它是如何影响按钮的位置并不会呆在那里很明显)是表示我想它是。另一个按钮太高或太低,不再可见。
如何设置位置,使按钮的Y位置为旧位置+新显示的相对布局的高度,以便按钮在其上方显示?
这是不合逻辑的,因为RL的getY不会改变,按钮的高度相等,所以结果对于所有的都是一样的。它应该是按钮的getY和RL的高度,而不是相反。 –
对不起,我可能会误解,你可以发布你的布局实现,以便我可以有一个更好的理解?你在使用XML还是动态创建它? – Khaled