6

Androidでビューを画面サイズと同じ高さにする方法は、xmlだけでこれを達成することは可能ですか? または、スクリプトを使用する必要がある場合は、その方法を教えてください

ありがとう。


わかりづらくてすみません、回答ありがとうございます

しかし、match_parent および fill_parent 属性は信頼できないと思います。これは、ビューを 1 つのコンテナー内に配置したり、ビュー コンテナー階層を変更したりすると機能しないためです。

ここに私の完全なxmlレイアウトがあります。

高さをデバイス画面と同じにしたい要素は、相対レイアウト内の最後のリストビューです

ここに画像の説明を入力

4

3 に答える 3

3

いいえ、XML だけでこれを達成することはできません。

Android は複数の画面サイズをサポートしているため、実行時に各デバイス サイズを確認する必要があります。各デバイスの高さは次のように計算できます。

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int height = size.y;

上記のコードでは、画面の高さを取得し、実行時にこの高さをdpでビューに設定する必要があります。

アクティビティでこれを行います。

// get view you want to resize
LinearLayout mainLayout = (LinearLayout) findViewById(R.id.main); 

// get layout parameters for that view
ViewGroup.LayoutParams params = mainLayout.getLayoutParams();

// change height of the params e.g. 480dp
params.height = 480;

// initialize new parameters for my element
mainLayout.setLayoutParams(new LinearLayout.LayoutParams(params));
于 2013-11-06T07:14:28.407 に答える
1

から可能ですxml layout。これを行うには、親レイアウトの高さと幅fill_parent or match_parentを作成し、各子ビューの幅を設定します。親レイアウトにfill_parent or match_parent.は何も設定しないでください。padding or marginそれがうまくいくことを願っています。ここで例を挙げます:

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

    <Button
        android:id="@+id/btn_swap"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Left or Right" />

    <SurfaceView
        android:id="@+id/my_surface"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

</LinearLayout>

注意:を使用するScrollView場合は、設定しfillViewport="true"ないと機能しません。以前、Google のエンジニアが言っていました。ここからチェック

于 2013-11-06T07:12:51.497 に答える
0
Display screenDisplay = getActivity().getWindowManager().getDefaultDisplay();
LayoutHeight = screenDisplay.getHeight();
LinearLayout.LayoutParams listLayoutParams = new LinearLayout.LayoutParams(
                    LayoutHeight, LinearLayout.LayoutParams.WRAP_CONTENT);
view.setLayoutParams(listLayoutParams);
于 2013-11-06T07:07:29.837 に答える