親またはそれ自体に相対的な寸法に 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 を返しています。これを呼び出すのは時期尚早ですか? はいの場合、これを呼び出す正しい場所は何ですか?
基本的に私の意図は、レイアウトの幅を画面サイズの幅の一部にし、高さをそれ自体の幅と同じにすることです。