简单的Android布局调整大小

时间:2015-03-17 03:17:25

标签: android xml android-layout android-linearlayout android-button

我试图在旋转时调整按钮大小以按比例扩展。现在,它们是固定长度,但我不确定是否有另一种方法可以让按钮调整大小(设置重量似乎没有帮助)。我希望按钮基本上垂直和水平地填充屏幕的长度。如果您需要更多信息,请与我们联系。

 <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_gravity="center_vertical" >

            <Button
                android:id="@+id/mainCommentBtn"
                android:layout_width="119dp"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:clickable="true"
                android:focusable="false"
                android:focusableInTouchMode="false"
                android:layout_weight="1"
                android:text="@string/commentBtn" />

            <Button
                android:id="@+id/mainProfileBtn"
                android:layout_width="119dp"
                android:layout_height="wrap_content"
                android:clickable="true"
                android:focusable="false"
                android:focusableInTouchMode="false"
                android:layout_weight="1"
                android:layout_centerInParent="true"
                android:text="@string/profileBtn" />

            <Button
                android:id="@+id/mainDetailBtn"
                android:layout_width="119dp"
                android:clickable="true"
                android:focusable="false"
                android:focusableInTouchMode="false"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:text="@string/shareBtn" />
        </LinearLayout>

4 个答案:

答案 0 :(得分:0)

用此替换您的资源。复制已编辑的更改

注意宽度是0dp因为它们正在使用重量。 使用重量: 1.为了使用重量,您需要在父母中设置weightSum。 2.根据您使用的重量,确保宽度或高度设置为0。 (例如,因为我们使用水平方向,我们想要使用“0dp”宽度。这允许重量控制对象的宽度。 3.最后确保所有物体的重量加起来为weightSum。

<?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="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginTop="5dp"
android:orientation="horizontal"
android:weightSum="3" >

<Button
    android:id="@+id/mainCommentBtn"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_weight="1"
    android:clickable="true"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:text="@string/commentBtn" />

<Button
    android:id="@+id/mainProfileBtn"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:layout_weight="1"
    android:clickable="true"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:text="@string/profileBtn" />

<Button
    android:id="@+id/mainDetailBtn"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_weight="1"
    android:clickable="true"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:text="@string/shareBtn" />

</LinearLayout>

答案 1 :(得分:0)

您需要指定LinearLayout的方向。

我想你想使用android:orientation="horizontal"

然后,为了使android:weight有效,您需要使用0px为每个按钮指定每个按钮的宽度为android:layout_width="0px"

答案 2 :(得分:0)

    <Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:text="Button" />

这些xml属性调整按钮的大小,使其垂直和水平填充屏幕。

答案 3 :(得分:0)

您可以借助布局权重创建布局,以便它也会以横向模式自动填充屏幕,如下所示:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="3" >
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button 1"
            android:layout_weight="1" />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button 2"
            android:layout_weight="1" />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button 3"
            android:layout_weight="1" />
    </LinearLayout>