1

我正在尝试将列表视图中的 6 个字段与位于屏幕顶部的 6 个标签字段对齐。我使所有文本大小相同,maxEms 大小相同,布局权重相同。我的问题是列表视图没有与屏幕左侧对齐。它似乎内置了一些默认的左边距。我可以摆脱权重并在我的标签上设置手动边距以使所有内容排列起来,但我认为当不同尺寸的屏幕发挥作用时,这可能是一场噩梦。

这是我的屏幕的第一个布局(此布局包含代表我的 listView 标签的 TextViews。线性布局位于相对布局内)

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:layout_below="@+id/dateDisplayTextView"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_weight="1"
        android:maxEms="2"
        android:text="#1"
        android:textColor="@color/green"
        android:textSize="16sp" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_weight="1"
        android:maxEms="2"
        android:text="#2"
        android:textColor="@color/green"
        android:textSize="16sp" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_weight="1"
        android:maxEms="2"
        android:text="#3"
        android:textColor="@color/green"
        android:textSize="16sp" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_weight="1"
        android:maxEms="2"
        android:text="#4"
        android:textColor="@color/green"
        android:textSize="16sp" />

    <TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_weight="1"
        android:maxEms="2"
        android:text="#5"
        android:textColor="@color/green"
        android:textSize="16sp" />

    <TextView
        android:id="@+id/textView7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_weight="1"
        android:maxEms="2"
        android:text="PB"
        android:textColor="@color/red"
        android:textSize="16sp" />

</LinearLayout>

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_above="@+id/emailButton1"
    android:layout_below="@id/linearLayout1" >

</ListView>

 <Button
    android:id="@+id/emailButton2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:text="Back" />

 <Button
     android:id="@+id/emailButton1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentBottom="true"
     android:onClick="emailTickets"
     android:layout_alignParentRight="true"
     android:text="Email tickets to contacts" />

这是在我的自定义适配器中扩展的布局

<?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="wrap_content"
android:layout_alignParentLeft="true"
android:orientation="horizontal" >


<TextView
    android:id="@+id/number1TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:maxEms="2"
    android:layout_weight="1"
    android:textSize="16sp"
    android:text="TextView" />

<TextView
    android:id="@+id/number2TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:maxEms="2"
    android:layout_weight="1"
    android:textSize="16sp"
    android:text="TextView" />

<TextView
    android:id="@+id/number3TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:maxEms="2"
    android:layout_weight="1"
    android:textSize="16sp"
    android:text="TextView" />

<TextView
    android:id="@+id/number4TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:maxEms="2"
    android:layout_weight="1"
    android:textSize="16sp"
    android:text="TextView" />

<TextView
    android:id="@+id/number5TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:maxEms="2"
    android:layout_weight="1"
    android:textSize="16sp"
    android:text="TextView" />

<TextView
    android:id="@+id/numberPBTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:maxEms="2"
    android:layout_weight="1"
    android:textSize="16sp"
    android:text="TextView" />

</LinearLayout>

这是我的布局运行的图像,展示了我的问题

截屏

我试图调整标签恶魔所在的线性布局的左边距,但没有任何影响。对于这篇长篇文章,我深表歉意,我只是想确保我提供了所有相关信息。提前致谢

4

3 回答 3

2

组合:

    android:layout_width="wrap_content"
    android:layout_weight="1"

意味着,文本字段至少具有内容的大小,并且无论剩余空间如何,都均匀分布在字段之间。拥有不同的内容,会导致文本字段的宽度不同。没有改变,因为它定义了最大宽度,该android:maxEms字段的宽度可以更小。

两种可能的定义将导致正确的大小。为标题和行中提交的每个文本获取该代码:

1.让Android算出合适的宽度:

<TextView
    android:id="@+id/..."
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:textSize="16sp"
    android:text="TextView" />

将宽度设置为 0 意味着所有空间都被留下并均匀(加权layout_weight)分布。

2.通过设置字段的宽度ems

<TextView
    android:id="@+id/..."
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:ems="2"
    android:textSize="16sp"
    android:text="TextView" />

ems定义宽度。同样,其余的空间将被分配。

于 2013-11-14T18:11:48.277 回答
0

您可以使用

安卓:layout_padding

这对你很有用。

于 2013-11-14T18:01:30.277 回答
0

尝试将自定义适配器重力的 textViews 设置为左​​侧

 android:gravity="left"
于 2013-11-14T18:10:34.147 回答