所以我的可扩展列表中的每一行都有一个按钮,下面是我的文本视图和按钮的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>
答案 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>