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

时间:2011-08-08 12:49:55

标签: 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>

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

9 个答案:

答案 0 :(得分:96)

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

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

答案 1 :(得分:17)

如果您要查看的是将所有按钮设置为最宽按钮的宽度,则设置权重并不会这样做。相反,您可以将所有按钮放在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>

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

答案 2 :(得分:3)

设置为每个按钮:

android:layout_weight="0.5"
android:layout_width="0dp"

答案 3 :(得分:3)

Display display=getWindowManager().getDefaultDisplay();
    int width=display.getWidth();
    btn1.setWidth(width/2);
    btn2.seTwidth(width/2);

在xml文件中设置任何内容然后首先找到设备的宽度,然后将宽度设置为两个按钮     现在,在每台设备上,它们看起来完全相同

答案 4 :(得分:3)

const http = require('http'),
fs = require('fs'),
filePath = './music/my.mp3',
stat = fs.statSync(filePath);

http.createServer(function(request, response) {
  fs.createReadStream(filePath).pipe(response);

  response.writeHead(200, {
    'Content-Type': 'audio/mpeg',
    'Content-Length': stat.size,
  });

}).listen(4000);

These is the example for equal size buttons for side by side can be done from above code

<LinearLayout
    android:id="@+id/layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_weight="1"
        android:text="One" />

    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_weight="1"
        android:text="Two" />
</LinearLayout>

用于为LinearLayout的每个子节点分配按钮或等量的空间。

注意:它仅适用于线性布局。

答案 5 :(得分:1)

android:layout_weight="0.5"
android:layout_width="0dp

它正在运作

答案 6 :(得分:0)

在包含的布局中设置android:layout_weight =“1”线性布局应该将android:orientation设置为水平。然后内部按钮应该具有以下内容:

机器人:layout_width = “0dp”

机器人:layout_weight = “0.5”

答案 7 :(得分:0)

这有效:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <Button
        android:layout_width="0dp"
        android:layout_weight="0.5"
        android:layout_height="wrap_content"
        android:text="my btn 1"/>
    <Button
        android:layout_width="0dp"
        android:layout_weight="0.5"
        android:layout_height="wrap_content"
        android:text="my btn 2"/>
    </LinearLayout>

答案 8 :(得分:0)

您可以将它们设置为嵌套在相对布局中的线性布局

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:gravity="center"
    android:orientation="vertical">



        <Button
            android:id="@+id/bestBtn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textStyle="bold"
            android:layout_marginBottom="5dp"
            android:textAllCaps="false"
            android:textSize="16sp"
            android:textColor="@color/grey_light2"
            android:background="@drawable/sharefb_btn"
            android:text="@string/sharefb" />
        <Button
            android:id="@+id/playBtn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textColor="@color/grey_light2"
            android:textAllCaps="false"
            android:textSize="16sp"
            android:layout_marginBottom="50dp"
            android:textStyle="bold"
            android:background="@drawable/puzzle_opening_btn_ncvtelen_3"
            android:text="@string/playagain" />

</LinearLayout>

你会得到类似的东西

enter image description here