当我在android:layout_weight中使用时,按钮被拉伸

时间:2013-05-28 07:47:26

标签: android android-layout android-linearlayout

我在android:layout_weight中使用。 它是有用的工具。

但是当我使用他时,这是个问题。所有按钮均采用线性布局。 我希望按钮在它们之间的相同空间。但实际上,按钮拉伸了所有的布局。

有可能使用layout_weight来获得相等的空间,但是没有拉伸所有布局的按钮吗?

我认为可能将任何按钮放在线性布局中并使用layout_weight或者可以在边距中使用(但这并非在所有屏幕尺寸中动态分割)

  

  

<LinearLayout
    <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:layout_gravity="center"
    android:weightSum="5">

    <Button
        android:id="@+id/patient_p1_button"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:background="@drawable/patient_p1_selector" />

    <Button
        android:id="@+id/patient_p2_button"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:layout_marginBottom="20dip"
        android:background="@drawable/p2_selector" />

    <Button
        android:id="@+id/patient_p3_button"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:background="@drawable/p3_selector" />

    <Button
        android:id="@+id/patient_data_main_screen_medicines_button"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:background="@drawable/medication_selector" />

    <Button
        android:id="@+id/patient_p4_button"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:background="@drawable/p4_selector" />
</LinearLayout>

我现在在按钮中使用android:layout_marginBottom,它对我有用。但我不确定这是正确的方法。

3 个答案:

答案 0 :(得分:0)

您应该使用match_parent作为android:layout_height,如果您想要一些空格,那么您可以放置​​一些空视图(或Space)并为它们赋予权重。如果您不希望按钮更改大小,并且您只是希望它们在屏幕中对称放置,您可以给它们android:layout_height="wrap_content"并围绕Button内的每个RelativeLayoutandroid:layout_weight设置为特定值。

答案 1 :(得分:0)

这段代码正是如此:

<LinearLayout
    android:id="@+id/notif"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="60dp"
    android:layout_marginRight="10dp"
    android:background="@null"
    android:orientation="horizontal"
    android:gravity="right">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="2" 
        android:gravity="right">

        <Button
            android:id="@+id/btn_unread"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/btn_notify"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="3" 
        android:gravity="right">

        <Button
            android:id="@+id/btn_notif"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:background="@drawable/btn_notify"/>
    </LinearLayout>
</LinearLayout>

答案 2 :(得分:0)

我找到了解决方案:

我在这样的虚构视图中使用,当我仅在虚构视图上使用layout_weight时:(在我的情况下是TextView)

  <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:text_view_element="http://schemas.android.com/apk/res-auto"
    android:id="@+id/patient_data_main_screen"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <RelativeLayout
        android:id="@+id/main_container_main_screen"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginRight="10dip"
        android:layout_marginLeft="10dip"
        android:layout_marginTop="15dip"
        android:layout_marginBottom="15dip"
        android:paddingLeft="1.5dip"
        android:paddingTop="1.6dip"
        android:paddingRight="1.5dip"
        android:background="@drawable/details_main_screen_background"
        >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/data_main_screen_details"
            android:layout_gravity="center"
            android:orientation="vertical"
            >

            <Button
                android:id="@+id/data_main_screen_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:background="@drawable/details_main_button_selector" />

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="0dip"
                android:layout_gravity="right"
                android:layout_weight="1" />

            <Button
                android:id="@+id/main_screen_tests_results_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:background="@drawable/tests_selector" />

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="0dip"
                android:layout_gravity="right"
                android:layout_weight="1" />

            <Button
                android:id="@+id/main_screen_visits_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:background="@drawable/visits_selector" />

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="0dip"
                android:layout_gravity="right"
                android:layout_weight="1" />

            <Button
                android:id="@+id/main_screen_med_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:background="@drawable/med_selector" />

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="0dip"
                android:layout_gravity="right"
                android:layout_weight="1" />

            <Button
                android:id="@+id/main_screen_sens_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:background="@drawable/sens_selector" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="0dip"
                android:layout_gravity="right"
                android:layout_weight="1" />

            <Button
                android:id="@+id/main_screen_information_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:background="@drawable/information_selector" />

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="0dip"
                android:layout_gravity="right"
                android:layout_weight="1" />

        </LinearLayout>

    </RelativeLayout>

</RelativeLayout>