按钮放置在线性布局中

时间:2012-04-07 20:23:10

标签: android android-button android-linearlayout

我有一个线性布局,里面有几个按钮。按钮图像大小相同,属性相同......除了一个按钮。这一个按钮的字体较小。除了这个按钮之外的所有按钮都完全符合我的要求。出于某种原因,屏幕较小的按钮在屏幕上显示的位置比其他按钮略低。我很难想到一个按钮的想法,这个按钮需要更少的空间占用额外的空间。

有人可以给我一些关于阅读内容的提示吗?

修改

这是main.xml(似乎SO过滤了一些,所有重要的东西都在这里......)

   

<ScrollView android:id="@+id/scroll"
            android:layout_width="match_parent"
            android:layout_height="300px">

    <TextView
            android:id="@+id/the_text_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:typeface="monospace"
            android:textSize="9pt"
            android:background="@color/paper"
            android:paddingLeft="20dp"
            android:paddingBottom="20dp"
            android:textColor="@color/type"
            />
</ScrollView>

<LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    <Button style="@style/ASR33_button"
            android:tag="Y"
            android:text="Y"
            />

    <Button style="@style/ASR33_button"
            android:tag="N"
            android:text="N"
            />

    <Button style="@style/ASR33_button"
            android:tag="E"
            android:text="E"
            />

    <Button style="@style/ASR33_button"
            android:tag="W"
            android:text="W"
            />

    <Button style="@style/ASR33_button"
            android:tag="S"
            android:text="S"
            />

    <Button style="@style/ASR33_button"
            android:tag="F"
            android:text="F"
            />

    <Button style="@style/ASR33_button"
            android:tag="R"
            android:text="R"
            />

    <Button style="@style/ASR33_button"
            android:tag="M"
            android:text="M"
            />

    <Button style="@style/ASR33_button"
            android:tag="T"
            android:text="T"
            />

    <Button style="@style/ASR33_button"
            android:onClick="onEnterButtonClicked"
            android:textSize="6pt"
            android:text="RE-\nTURN"
            />

    <Button style="@style/ASR33_button"
            android:tag="U"
            android:text="U"
            />
</LinearLayout>

<LinearLayout
        android:orientation="horizontal"
        android:layout_marginTop="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    <TextView
            android:id="@+id/instructions"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textSize="9pt"
            android:paddingLeft="10dp"
            android:typeface="normal"
            android:text="Commands: (Y)es, (N)o, (N)orth, (E)ast, (W)est, (S)outh, (M)ap, (ST)atus, (Fight), (R)un, (SU)icide.  All commands must be followed by RETURN."
            />

</LinearLayout>

那个不稳定的是从底部开始的第二个,有不同的onclick事件。风格的字符大小为11pt。如果我使用它(和一个1个字母的按钮名称,就像其他人一样)它的行为。但这不是ASR33'进入'钥匙的原因。因此,如果我将字体大小减小到6磅,那就会发生奇怪的事情。

可以看到样式here

再次,请阅读参考或想法,如果我有一两个字要搜索,我可以弄明白。很难知道你不知道的是什么......

解决

Anurag说得对​​,请参阅下面的回答。以下是更新的LinearLayout的摘录:

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:baselineAligned="false">

1 个答案:

答案 0 :(得分:1)

可能由于按钮的wrap_content属性而重新调整大小。所以你应该做的是保持所有按钮的线性布局的固定高度,同时将其设置为填充父母。

在线性布局中,让各个按钮的高度设置为包装内容,这将使所有按钮的高度与线性布局的高度相同,并为小按钮设置属性android:adjustViewBounds="true"。此属性将调整图像按钮的大小以保持纵横比。我希望这会有所帮助。

编辑: 所以这里是你的问题的解决方案,这是由于线性布局的基本对齐属性引起的。默认情况下,水平LinearLayout会对齐其所有子控件的基线。因此,多行按钮中的第一行文本与其他按钮中的单行文本垂直对齐。在LinearLayout上设置android:baselineAligned =“false”。这完全适用于我的HTC。