2

我有以下 xml 为我的列表视图构建自定义行。它工作正常,但地址旁边的状态是我不想要的文字包装。过去我只是设置了一个重量,这很好,但它似乎没有在这里打球。

这是它的样子:

在此处输入图像描述

以下是手机上发生的事情:

在此处输入图像描述

这是我的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>
4

2 回答 2

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>
于 2013-03-04T09:57:17.230 回答
0

如果 ' 没有足够的空间TextView在一行中显示所有文本,则它要么是扭曲的,要么是省略号的。默认情况下,TextView's 是多行的,并且会换行。要改用省略号,请添加android:singleLine="true".

关于文字宽度比例:android:layout_width="0dp"为所有参与加权布局的View设置。android:layout_weight按比例分配权重。例如0.3下载TextView0.7地址TextView。这将为第一个视图提供 30% 的空间,为第二个视图提供 70% 的空间。

于 2013-03-04T10:06:35.750 回答