0

私はこのチュートリアルに従っていますが、それは言う

すべてのビューのデフォルトの重みは 0 であるため、0 より大きい重み値を 1 つのビューのみに指定すると、すべてのビューに必要なスペースが与えられた後に残っているスペースがそのビューによって埋められます。したがって、レイアウトの残りのスペースを EditText 要素で埋めるには、重みを 1 にして、ボタンを重みなしのままにします。

あなたは書くことによってこれを達成します

<EditText
        android:layout_weight="1"
        ... />

私がしたこと。チュートリアルにあるように、も設定しlayout_widthました。0dp

これで、Android Studio の [プレビュー] ペインにすべてが正常に表示されます。しかし、アプリをデバッグすると、EditTextコントロールが表示されませEditTextしかし、ボタンは、コントロールが実際に画面の幅全体を埋めて押し下げたかのように、画面のさらに下と左に表示されます(表示されEditTextないため、これを確認できません)。

weight プロパティを削除して固定幅を設定すると、表示さますが、明らかに望ましくありません。

EditTextコントロールが表示されないのはなぜですか?

これが私のコードです:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    tools:ignore="MergeRootFrame" android:orientation="horizontal">
    <EditText android:id="@+id/edit_message"
              android:layout_weight="1"
              android:layout_width="0dp"
              android:layout_height="wrap_content"
              android:hint="@string/edit_message" />

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button_send" />


</LinearLayout>

以下に示すように、EditText コントロールはありません。

ここに画像の説明を入力

4

2 に答える 2

1

このコードを試してください: editText は appx をカバーします。70% で、ボタンは合計幅の残りをカバーします...実際に 0dp 幅アプローチを使用する場合は、すべてのビューにそれを設定する必要があります....

<EditText android:id="@+id/edit_message"
              android:layout_weight="3"
              android:layout_width="0dp"
              android:layout_height="wrap_content"
              android:hint="@string/edit_message" />

    <Button android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/button_send" />
于 2013-09-20T05:35:37.773 に答える