我有以下xml为我的listview构建自定义行。它工作正常,但地址旁边的状态是自动换行,我不想要。在过去我只是设定了一个重量并且一切都很好,但它似乎没有在这里打球。
这是它的样子:
下面是手机上发生的事情:
继承我的xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/listviewonclick"
android:orientation="vertical"
android:padding="@dimen/Padding" >
<LinearLayout
android:id="@+id/linHoz"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="10" >
<TextView
android:id="@+id/status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="3"
android:paddingLeft="@dimen/left"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/cachecolor"
android:textSize="@dimen/MedText" />
<TextView
android:id="@+id/txtSpacer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/left"
android:text=" | "
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/yellow"
android:textSize="@dimen/MedText" />
<TextView
android:id="@+id/Address"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="3"
android:paddingLeft="@dimen/left"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/white"
android:textSize="@dimen/MedText" />
</LinearLayout>
<LinearLayout
android:id="@+id/linHoz2"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:padding="10dp"
android:src="@drawable/ico_information" />
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:padding="10dp"
android:layout_weight="6"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Button
android:id="@+id/btnStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/greenbuttons"
android:text="Start" />
</LinearLayout>
<LinearLayout
android:id="@+id/linarea"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.50" >
<Button
android:id="@+id/btnMap"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="28dp"
android:layout_margin="4dp"
android:layout_weight="3"
android:background="@drawable/smallbluebutton"
android:text="Map" />
<Button
android:id="@+id/btnInformation"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="28dp"
android:layout_margin="4dp"
android:layout_weight="3"
android:background="@drawable/smallpurplebuttons"
android:text="Information" />
<Button
android:id="@+id/btnProblems"
style="?android:attr/buttonStyleSmall"
android:layout_width="110dp"
android:layout_height="28dp"
android:layout_margin="4dp"
android:layout_weight="3"
android:background="@drawable/smallredbutton"
android:text="Problems" />
</LinearLayout>
</LinearLayout>
答案 0 :(得分:0)
仅将layout_weight
属性分配给地址标签。您可以设置layout_width="0dip"
以获得更好的效果。并明确设置布局方向。
<LinearLayout
android:id="@+id/linHoz"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Your Status" />
<TextView
android:id="@+id/txtSpacer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" | "/>
<TextView
android:id="@+id/Address"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Very very long text goes here. Very very long text goes here." />
</LinearLayout>
答案 1 :(得分:0)
如果没有足够的空间让TextView
显示单行中的所有文本,则为warp或省略号。默认情况下,TextView
是多行的,并将包装文本。要使用省略号,请添加android:singleLine="true"
。
关于文字宽度的比例:
为参与加权布局的所有视图设置android:layout_width="0dp"
。
使用android:layout_weight
按比例为每个人分配权重。例如。 0.3
用于下载TextView
,0.7
用于地址TextView
。这将为第一个视图提供30%的空间,为第二个视图提供70%的空间。