0

親またはそれ自体に相対的な寸法に LinearLayout (またはビュー) のサイズを変更したいと考えています。たとえば、幅を親の幅の 1/3 にしたいとします。または、高さはそれ自体の幅と同じにする必要があります。すべてのデバイスで機能するように、定数を使用したくありません。

コードの追加:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >

    <LinearLayout android:id="@+id/ll_board"
        android:gravity="center_horizontal"
        android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    </LinearLayout> 
        ...
</LinearLayout>

コード:

public class GMActivity extends Activity {
  public void onCreate(Bundle savedInstanceState) {
    LinearLayout board_layout = (LinearLayout)findViewById(R.id.ll_board);
    // I wanted to resize board_layout here ..
    // getParent().getWidth() returns 0
    Log.d("gm", "layout: " + ((LinearLayout) board_layout.getParent()).getWidth());
    // ..
  }
}

getWidth() が 0 を返しています。これを呼び出すのは時期尚早ですか? はいの場合、これを呼び出す正しい場所は何ですか?

基本的に私の意図は、レイアウトの幅を画面サイズの幅の一部にし、高さをそれ自体の幅と同じにすることです。

4

2 に答える 2

0

LinearLayout をレイアウトし、その親が別の LinearLayout であることを考慮すると、次のようになります。

親の幅を取得します。

int parentWidth = ((LinearLayout) layout.getParent()).getWidth();

ビューの幅を取得します。

int viewWidth = ((LinearLayout) layout).getWidth();

をセットする

view.setHeight(viewWidth );
view.setWidth(parentWidth / 3);
于 2012-06-23T09:49:28.513 に答える
0

Square Form の LinearLayout でheight=width ソリューション (正方形のレイアウト) を見つけました

于 2012-06-24T12:20:21.683 に答える