web-dev-qa-db-ja.com

android:layout_height画面サイズの50%

LinearLayout内にListViewを実装しましたが、LinearLayoutの高さを定義する必要があります(画面の高さの50%でなければなりません)。

<LinearLayout
    Android:id="@+id/widget34"
    Android:layout_width="300px"
    Android:layout_height="235px"
    Android:orientation="vertical"
    Android:layout_below="@+id/tv_scanning_for"
    Android:layout_centerHorizontal="true">

    <ListView
        Android:id="@+id/lv_events"
        Android:textSize="18sp"         
        Android:cacheColorHint="#00000000"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:layout_below="@+id/tv_scanning_for"
        Android:layout_centerHorizontal="true">
    </ListView>

</LinearLayout>

それは可能ですか?

ボタンとEditTextについても同様のことをしましたが、レイアウトでは機能しないようです。

これは私のコードです:

    //capture the size of the devices screen
    Display display = getWindowManager().getDefaultDisplay();
    double width = display.getWidth();

    //my EditText will be smaller than full screen (80%)        
    double doubleSize = (width/5)*4;
    int editTextSize = (int) doubleSize;

    //define the EditText 
    userName = (EditText) this.findViewById(R.id.userName);
    password = (EditText) this.findViewById(R.id.password);

    //set the size
    userName.setWidth(editTextSize);
    password.setWidth(editTextSize);
44
Marco Matarazzi

layout_height="0dp" *を設定し、その下に空白View(または空白ImageViewまたは単なるFrameLayout)を追加し、layout_height0dpに等しく、両方のビューにlayout_weight="1"

これにより、各ビューが画面全体に均等に広がります。両方とも同じ重量なので、それぞれが画面の50%を占めます。

*それがなぜ機能するのか、その他の本当に役立つヒントについては、adampのコメントを参照してください。

77
LeffelMania

これはxmlで簡単に行えます。一番上のコンテナをLinearLayoutに設定し、必要に応じて方向属性を設定します。次に、その内側に、幅と高さに「塗りつぶし親」を持つ2つのlinearlayoutsを配置します。最後に、これらの2つのlinearlayoutsのweigth属性を1に設定します。

6
Emir Kuljanin

これは私のAndroid:layout_height = 50%のアクティビティです:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:orientation="vertical" >

    <LinearLayout
        Android:id="@+id/alipay_login"
        style="@style/loginType"
        Android:background="#27b" >
    </LinearLayout>

    <LinearLayout
        Android:id="@+id/taobao_login"
        style="@style/loginType"
        Android:background="#ed6d00" >
    </LinearLayout>

</LinearLayout>

スタイル:

<style name="loginType">
    <item name="Android:layout_width">match_parent</item>
    <item name="Android:layout_height">match_parent</item>
    <item name="Android:layout_weight">0.5</item>
    <item name="Android:orientation">vertical</item>
</style>
6
Praise Song

最良の方法は使用です

layout_height = "0dp" layout_weight = "0.5"

例えば

<WebView
    Android:id="@+id/wvHelp"
    Android:layout_width="match_parent"
    Android:layout_height="0dp"
    Android:layout_weight="0.5" />

<TextView
    Android:id="@+id/txtTEMP"
    Android:layout_width="match_parent"
    Android:layout_height="0dp"
    Android:layout_weight="0.5"
    Android:text="TextView" />

WebView、TextViewには画面の高さの50%があります

3

画面を2つの部分に垂直に分割する場合(top30%+ bottom70%)はとても簡単です。

<LinearLayout
            Android:id="@+id/LinearLayoutTop"
            Android:orientation="vertical"
            Android:layout_width="fill_parent"
            Android:layout_height="fill_parent"
            Android:layout_weight="2">

     </LinearLayout>
     <LinearLayout
            Android:id="@+id/LinearLayoutBottom"
            Android:orientation="vertical"
            Android:layout_width="fill_parent"
            Android:layout_height="fill_parent"
            Android:layout_weight="1">

     </LinearLayout>
0
ahmad zeini

ビューの高さが画面の50%であることを確認するには、LinearLayoutに2つのサブLinearLayoutを作成します。子LinearLayoutのそれぞれには、画面の半分を覆うために「Android:layout_weight of .5」が必要です。

親のLinearLAyoutには、「Android:orientation」を「vertical」に設定する必要があります

ここに参考のためのコードがあります...このコードには、画面の半分の高さの2つのボタンが含まれています

<LinearLayout 
Android:orientation="vertical"
Android:layout_height="match_parent">

<LinearLayout

    Android:layout_weight="0.5"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:orientation="horizontal">

    <Button
        Android:padding="10dp"
        Android:layout_weight="0.5"
        Android:layout_width="wrap_content"
        Android:layout_height="fill_parent"
        Android:text="button1"
        Android:id="@+id/button1"
        Android:layout_alignParentTop="true"
        Android:layout_alignParentLeft="true"
        Android:layout_alignParentStart="true"
        Android:layout_alignParentBottom="true"
        />

    <Button
        Android:padding="10dp"
        Android:layout_weight="0.5"
        Android:layout_width="wrap_content"
        Android:layout_height="fill_parent"
        Android:text="button2"
        Android:id="@+id/button2"
        Android:layout_alignParentTop="true"
        Android:layout_alignParentRight="true"
        Android:layout_alignParentEnd="true"
        Android:layout_alignParentBottom="true"
        />

    </LinearLayout>

<LinearLayout

    Android:layout_weight="0.5"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:orientation="horizontal">


    </LinearLayout>
   </LinearLayout>
0
swayamraina

あなたはそのようなことをする必要があります:

<LinearLayout
    Android:id="@+id/widget34"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:orientation="vertical"
    Android:layout_below="@+id/tv_scanning_for"
    Android:layout_centerHorizontal="true">

    <ListView
        Android:id="@+id/lv_events"
        Android:textSize="18sp"         
        Android:cacheColorHint="#00000000"
        Android:layout_height="1"
        Android:layout_width="fill_parent"
        Android:layout_weight="0dp"
        Android:layout_below="@+id/tv_scanning_for"
        Android:layout_centerHorizontal="true"
        />

</LinearLayout>

代わりにdp代わりに pxまたはそれについて読む here .

0
nenito

この種の私のために働いた。 FABは独立してフロートしませんが、現在はプッシュダウンされていません。

LinearLayout内で指定された重みを観察します

<LinearLayout
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:orientation="vertical"
            Android:id="@+id/andsanddkasd">

            <Android.support.v7.widget.RecyclerView
                Android:id="@+id/sharedResourcesRecyclerView"
                Android:layout_width="match_parent"
                Android:layout_height="0dp"
                Android:layout_weight="4"
                />

            <Android.support.design.widget.FloatingActionButton
                Android:id="@+id/fab"
                Android:layout_width="wrap_content"
                Android:layout_height="0dp"
                Android:layout_gravity="bottom|right"
                Android:src="@Android:drawable/ic_input_add"
                Android:layout_weight="1"/>

        </LinearLayout>

お役に立てれば :)

0
Mahesh.M

親レイアウトでAndroid:weightSum="2"を子レイアウトでAndroid:layout_height="1"と組み合わせて使用​​できます。

           <LinearLayout
                Android:layout_height="match_parent"
                Android:layout_width="wrap_content"
                Android:weightSum="2"
                >

                <ImageView
                    Android:layout_height="1"
                    Android:layout_width="wrap_content" />

            </LinearLayout>
0
patrickandroid