0

2つのボタンで水平方向に分割されたLinearLayoutがあります。

これらのボタンを画面の下部に配置したいので、レイアウトに追加して android:layout_weight="bottom"も何も変更されません。

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="2" >

        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Start" />

        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Stop" />
    </LinearLayout>

</LinearLayout>
4

4 に答える 4

1

layout_widthボタンのをに設定する必要があります0dp

さらに、widthプロパティはありません。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="2"
android:layout_alignParentBottom="true" >

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Start" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Stop" />
</LinearLayout>

</RelativeLayout>
于 2013-01-09T16:55:30.313 に答える
1

layout_weight は、 layout_width または layout_height が考慮された後に残りのスペースを分割するために使用されます。

あなたが言う時

<Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.5"
    android:text="Start"
    android:width="0dp" />

android:layout_width="fill_parent"、ボタンのサイズをその親と同じ幅に設定するように指示します。水平線形レイアウトの 2 つのボタンに対してこれを行うと、表示されるボタンは 1 つだけになります。2 番目は実際には 1 番目の右側に配置されますが、画面外です。

両方のボタンにを設定するlayout_width0dp、両方のボタンの幅が同じになります。

両方のボタンにを設定するlayout_widthと、どちらも「優先」幅で開始され、親レイアウト内のすべてのビューの の合計wrap_contentに対する比率に基づいて、追加のスペースが割り当てられます。layout_widthlayout_width

下部にボタンが必要な場合は、レイアウトを相対的なレイアウトに変更する (およびalignParentBottom他の回答で述べたように使用する) か、垂直線形レイアウト内にネストすることができます (水平レイアウトには と がlayout_height='wrap_content'ありますlayout_width='fill_parent')。

ネスティングについて言及したので、次のようなものを使用できます

<LinearLayout
    andrdoid:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    ...
    >
        <LinearLayout
            anddoid:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            ...
            >
                <Button
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    ... />
                <Button
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    ... />
        </LinearLayout>
</LinearLayout>

(またはボタンの を使用wrap_contentしてlayout_width、テキスト幅で開始します)

于 2013-01-09T17:09:59.833 に答える
0

ボタンの layout_width パラメータを

android:layout_width="0dp"

また、layout_alignParentBottom を使用することもできます

android:layout_alignParentBottom="true"

次のようにレイアウトファイルを作成できます

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content">

  <!-- Other Components of your layout file -->
  <LinearLayout
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:layout_gravity="bottom"
  android:layout_alignParentBottom="true"
  android:orientation="horizontal"
  android:weightSum="2">
    <Button
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:text="Start"/>

    <Button
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:text="Stop"/>
  </LinearLayout>
</RelativeLayout>
于 2013-01-09T17:07:03.200 に答える
0

あなたのタイトルは、layout_weight が機能していないと言っていますが、質問の本文は、それがうまく機能していることを示しています。このlayout_weight属性により、ボタンの幅がそれぞれ半分になるはずです。

画面下部の配置は別の問題です。最近編集した xml に基づいてandroid:gravity="bottom"、親LinearLayoutまたはandroid:layout_gravity="bottom"子に追加しますLinearLayout

于 2013-01-09T17:16:11.057 に答える