0

水平方向の中央に重なった一連のトランプを持つレイアウトを作成しようとしています。オーバーラップは機能しますが、カードが中央に配置されていません。カードの周りに境界線を引くと、相対的なレイアウトには、負のマージンが適用されていない場合に使用されるすべての領域が含まれているように見えます。次に、この合計領域が中央に配置されます。

相対的なレイアウトの範囲が、トランプの ImageViews を含む領域だけであることを確認して、トランプを水平方向に中央揃えできるようにするにはどうすればよいですか?

これは RelativeLayout の定義です

  <RelativeLayout
        android:id="@+id/tNorth"
        android:layout_width="wrap_content"
        android:layout_height="100dp"
        android:layout_above="@+id/vCardTable"
        android:layout_centerHorizontal="true"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="15sp"
        android:background="@drawable/losing_border"
        android:layout_marginBottom="15sp" >
    </RelativeLayout>

これがコードです

    final RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
        RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
            if (isMiddle) {
                params.addRule(RelativeLayout.CENTER_HORIZONTAL);
            }
            if (previousCard != null) {
                params.addRule(RelativeLayout.RIGHT_OF, previousCard.getId());
                params.setMargins(-pxPadding, 0, 0, 0);
            }
4

2 に答える 2

0

ImageViewの幅と高さを設定することでこれを解決できました

            final int hPixels = (int) (100 * scale + 0.5f);
            final int wPixels = (int) (70 * scale + 0.5f);
            final RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(wPixels, hPixels);

これが設定された後、レイアウトは正しくなり、setAdjustViewBounds を削除することもできました

于 2013-06-22T10:04:07.517 に答える