Android 如何使按钮宽度等于其他文本较长的按钮

Android 如何使按钮宽度等于其他文本较长的按钮,android,button,Android,Button,我有几个不同文本长度的按钮。 我想让所有的按钮都和这个按钮一样 具有最长的文本。 它们的宽度是 android:layout_width="wrap_content" 所以按钮的宽度不同 我试过了 int width=button1.getWidth(); button2.setWidth(width) 但他们并不匹配。 按钮2的宽度不同。 我不知道是什么。 设置宽度设置像素 我不想使用权重,因为不能保证按钮的文本 可以作为一行文本。我不想设置按钮的确切宽度,因为在按

我有几个不同文本长度的按钮。 我想让所有的按钮都和这个按钮一样 具有最长的文本。 它们的宽度是

android:layout_width="wrap_content"
所以按钮的宽度不同

我试过了

      int width=button1.getWidth();
      button2.setWidth(width)
但他们并不匹配。 按钮2的宽度不同。 我不知道是什么。 设置宽度设置像素

我不想使用权重,因为不能保证按钮的文本 可以作为一行文本。我不想设置按钮的确切宽度,因为在按钮文本的左侧和右侧会有额外的空间

有什么想法吗? 谢谢



试试这个。在线性布局中使用权重。

您可能调用
getWidth()
方法太早了,因为如果UI尚未完成加载和缩放,
getWidth()
将返回不需要的值


尝试记录
getWidth()
的值。如果它为零,则可能是

的副本尝试为不同密度的屏幕设置两个按钮的特定宽度尝试使用不同的
dimen
文件夹。粘贴的代码是否在oncreate()或oncreateview()中。如果它在oncreate中,那么将它移动到oncrewreview,这将解决您的问题对不起,我不明白。正如我所写的,我希望按钮的宽度与最大textRanjith相等,是的,是onCreate()中的代码。如果我将其移动到onCreateView,它是否会修复getWidth和setWidth的不同值的问题?我必须研究如何使用这个onCreateView…无法理解onCreateView。看起来很头痛,因为我在一个活动中显示了几页……我的按钮从屏幕上消失了。垂直布局可能不支持宽度权重
<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true" >

    <Button
        android:id="@+id/button1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:text="Button is clickble" />

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

</LinearLayout>