Android按钮文本在同一行

时间:2014-10-01 15:35:27

标签: android android-layout android-button

所以我的可扩展列表中的每一行都有一个按钮,下面是我的文本视图和按钮的XML布局文件(应该在同一行上),但文本"分配徽章& #34;是太长了,除非我把文字大小缩小,它不合适,单行=真,它没有帮助,因为它不会显示文本的一半,没有它,文本在按钮将出现在两行...有没有办法得到它所以按钮可以更宽?谢谢。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="55dip"
    android:orientation="horizontal"
    android:weightSum="1" >

<TextView
    android:id="@+id/listItem"
    android:layout_width="match_parent"
    android:layout_height="35dp"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:gravity="center_vertical"
    android:layout_weight="0.2"
    android:textSize="17dip"
    android:paddingLeft="?android:attr/expandableListPreferredChildPaddingLeft" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:layout_weight="0.8"
    android:textSize="8dp"
    android:singleLine="true"
    android:text="Assign Badge"
    android:id="@+id/assign" />

</LinearLayout>

4 个答案:

答案 0 :(得分:2)

看看这是否有帮助,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="55dip"
android:orientation="horizontal" >
<TextView
    android:id="@+id/listItem"
    android:layout_width="0dp"
    android:layout_height="35dp"
    android:layout_weight="0.7"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:gravity="center_vertical"
    android:text="TEST" 
    android:paddingLeft="?android:attr/expandableListPreferredChildPaddingLeft"
    android:textSize="17dip" />

<Button
    android:id="@+id/assign"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="0.3"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:singleLine="true"
    android:text="Assign Badge"
    android:textSize="8dp" />
</LinearLayout>

答案 1 :(得分:0)

您可以使用填充

    android:paddingLeft="xxdip"
    android:paddingRight="xxdip"

其中xx是您的值

答案 2 :(得分:0)

如果你想扩大你的范围,可以修改两个元素的权重。

使用权重自动分配两个元素之间的空间,考虑宽度的关系。 android中的weight属性似乎与反直觉相反(重量较大的元素占用较小的空间)。

在我使用nexus 5的测试中,这导致了预期的结果:

(为了便于阅读,我省略了不变的代码)

[...]
<LinearLayout 
    [...]

    <TextView
        [...]
        android:id="@+id/listItem"
        android:layout_weight="0.3" />

    <Button
        [...]
        android:layout_weight="0.7"
        android:id="@+id/assign" />

</LinearLayout>

请注意LinearLayout中的weight_sum元素。如果您的权重不等于此数字,则布局将小于或大于布局。如果删除该属性,则元素将占用布局中的所有可用空间。

答案 3 :(得分:0)

android:singleLine="true"已过时。改用它:

android:maxLines="1"

赞:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="55dip"
android:orientation="horizontal" >
<TextView
    android:id="@+id/listItem"
    android:layout_width="0dp"
    android:layout_height="35dp"
    android:layout_weight="0.7"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:gravity="center_vertical"
    android:text="TEST" 
    android:paddingLeft="?android:attr/expandableListPreferredChildPaddingLeft"
    android:textSize="17dip" />

<Button
    android:id="@+id/assign"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="0.3"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:maxLines="1"
    android:text="Assign Badge"
    android:textSize="8dp" />
</LinearLayout>