无论屏幕尺寸如何,将两个按钮设置为相同宽度?

Gor*_*ran 41 android button android-linearlayout

好的,我有两个线性布局按钮:

<LinearLayout android:id="@+id/linearLayout1" 
              android:layout_height="wrap_content" 
              android:layout_width="fill_parent">
        <Button android:id="@+id/aktiviraj_paket" 
                android:text="Aktiviraj" 
                android:layout_height="40sp" 
                android:layout_width="160sp" 
                android:background="@drawable/my_border3" 
                android:onClick="myClickHandle"></Button>
        <Button android:id="@+id/deaktiviraj_paket" 
                android:text="Deaktiviraj" 
                android:layout_height="40sp" 
                android:layout_width="fill_parent" 
                android:background="@drawable/my_border3"
                android:onClick="myClickHandle">
        </Button>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

所以问题是,如果我在两个按钮上使用填充父项,它们是一个在一起,所以我已经制作了第一个按钮160sp宽度,第二个是fill_parent.如果这个显示在4英寸或更小的屏幕上,按钮大小相同,但如果我在平板电脑上尝试这个(10英寸),第一个按钮保持160sp宽,第二个按钮延伸到屏幕结束(因为fill_parent).我可以做到这一点,所以无论屏幕尺寸大小,两个按钮都可以是均匀尺寸吗?

Che*_*ami 96

android:layout_weight="1"在两个上使用Button.android:layout_width="0dp"两者都设置.由于两个按钮现在具有相同的权重,现在它们每个都具有父亲宽度的一半.

您可以在此处找到更多信息:http://developer.android.com/guide/topics/ui/layout/linear.html


小智 19

如果您要做的是将所有按钮设置为最宽按钮的宽度,则设置权重不会这样做.相反,您可以将所有按钮放在TableLayout中:

   <TableLayout 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <Button
                android:id="@+id/button1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/short_text" />
        </TableRow>

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <Button
                android:id="@+id/button2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/enter_manually" />
        </TableRow>
    </TableLayout>
Run Code Online (Sandbox Code Playgroud)

此布局将显示2个按钮,一个在另一个的顶部,相同的宽度.

  • 这个答案睡得很辛苦 (2认同)

Bog*_* M. 5

设置为每个按钮:

android:layout_weight="0.5"
android:layout_width="0dp"
Run Code Online (Sandbox Code Playgroud)