-1

我目前在我的应用程序中有一个 RelativeLayout,我可以动态移动、调整大小和隐藏它。移动一次后,布局会重新定位到一个奇怪的位置。

这是我正在使用的布局。

<RelativeLayout ...>
    <RelativeLayout android:id="@+id/moveable_layout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:visibility="gone" />
</RelativeLayout>

这是我用来重新定位它的代码

RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(newWidth, newHeight);
m_movingFrame.setEnabled(true);
m_movingFrame.setLayoutParams(layoutParams);
m_movingFrame.setX(newX);
m_movingFrame.setY(newY);
m_movingFrame.requestLayout();
m_movingFrame.bringToFront();
m_movingFrame.setVisibility(View.VISIBLE);

这是用于隐藏布局的代码

m_movingFrame.setEnabled(false);
m_movingFrame.setVisibility(View.GONE);

我第一次重新定位它时,它会移动到正确的位置,但每次后续的重新定位都会将它移动到错误的位置。谁能告诉我为什么它的行为如此不稳定?

提前致谢!

4

1 回答 1

0

First get the layout of the existing layout and then modify it.

 RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) m_movingFrame.getLayoutParams();

...

m_movingFrame.setLayoutParams(layoutParams);
于 2013-04-23T15:20:38.417 回答