-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

最初に既存のレイアウトのレイアウトを取得してから、それを変更します。

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

...

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