0

我在 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 中使用它,它对我有用。但我不确定这是正确的方法。

4

3 回答 3

0

你应该使用match_parentandandroid:layout_height如果你想要一些空间,那么你可以放置一些空视图(或Space)并给它们赋予权重。如果您不想让按钮更改大小,而只想将它们对称地放置在屏幕中,您可以给它们android:layout_height="wrap_content"并将每个按钮包围Button在一个RelativeLayoutandroid:layout_weight设置为特定值的内部。

于 2013-05-28T08:48:09.597 回答
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>
于 2013-05-29T15:20:49.920 回答
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>
于 2013-07-24T07:20:22.607 回答