在android:layout_weight按钮Android中使用

时间:2013-05-27 11:48:14

标签: android android-layout android-linearlayout

我尝试将按钮放在屏幕上。我希望这个屏幕在整个屏幕上分成相同的空间。我在android:layout_weight中阅读了很多关于使用的答案,但我没有成功。

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

<Button
    android:id="@+id/p_data_button"
    android:layout_width="wrap_content"
    android:layout_height="0dip"
    android:layout_weight="1"
    android:layout_gravity="center"
    android:background="@drawable/p_selector"
    />
<Button
    android:id="@+id/p1_data_button"
    android:layout_width="wrap_content"
    android:layout_height="0dip"
    android:layout_weight="1"
    android:layout_gravity="center"
    android:background="@drawable/p1_selector"
    />
<Button
    android:id="@+id/p2_data_button"
    android:layout_width="wrap_content"
    android:layout_height="0dip"
    android:layout_weight="1"
    android:layout_gravity="center"
    android:background="@drawable/p2_selector"
    />
<Button
    android:id="@+id/p3_data_button"
    android:layout_width="wrap_content"
    android:layout_height="0dip"
    android:layout_weight="1"
    android:layout_gravity="center"
    android:background="@drawable/p3_selector"/>

</LinearLayout>

修改

此背景适用于选择器。它会受到影响吗?

我添加了答案。

5 个答案:

答案 0 :(得分:0)

这是我的代码,它在屏幕上分为5个部分的屏幕文本视图..在你的代码中你没有提供android:weightSum =“5”属性..

<LinearLayout
    android:id="@+id/l"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:weightSum="5" >

    <TextView
        android:id="@+id/txtUHID"
        style="@style/pateint_context_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="left"
        android:text="UHID: " />

    <TextView
        android:id="@+id/txtBedID"
        style="@style/pateint_context_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="Bed ID: "
        android:visibility="invisible" />

    <TextView
        android:id="@+id/txtDOB"
        style="@style/pateint_context_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="DOB: " />

    <TextView
        android:id="@+id/txtSex"
        style="@style/pateint_context_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="Sex: " />

    <TextView
        android:id="@+id/txtAge"
        style="@style/pateint_context_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="right"
        android:text="Age: " />
</LinearLayout>

答案 1 :(得分:0)

如果您正在使用权重,并且希望元素覆盖整个空间,请使用android:layout_height="match_parent"

答案 2 :(得分:0)

由于Button的大小为“wrap_content”。他们没有表现出来。

只需在全部按钮中放置一些文字android:text="test"即可。 可以使用否则在后台选择器中使用图像。

答案 3 :(得分:0)

我发现了问题。你没事吧。代码工作正常。在这个应用程序的旧版本中,它们的功能在某些情况下将所有内容放在相对布局中。我明白,当内容处于相对布局时,需要将其放在线性布局上。但它不能正常工作..

在我更换此功能后,我确信这是导致此问题的原因。

答案 4 :(得分:0)

你的xml代码绝对正常,它应该显示你想要显示的内容。 您添加到所有按钮的可绘制背景一定有问题。我建议您删除drawable并应用一些基本颜色,如

android:background="@color/black"

确保它与drawable的问题。祝你好运!