当我的ListView的行中的活动名称太长时,我的日期TextView在我的单元TextView下面出现了问题。
这是我的listview的行布局代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Name"
android:id="@+id/activityName"
android:textSize="25dp"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/pound"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="unit"
android:id="@+id/unit"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:layout_marginRight="5dp"
android:textSize="20dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="/"
android:id="@+id/slash"
android:layout_toLeftOf="@+id/unit"
android:layout_centerVertical="true"
android:layout_marginRight="2dp"
android:textSize="20dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Number"
android:id="@+id/number"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/slash"
android:layout_marginRight="5dp"
android:textSize="20dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="#"
android:id="@id/pound"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/number"
android:layout_marginRight="2dp"
android:textSize="20dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Date"
android:id="@+id/date"
android:layout_below="@+id/unit"
android:layout_alignRight="@+id/unit"
android:textSize="10sp" />
</RelativeLayout>
我的ListView行如下所示:
如何让我的日期TextView始终低于我的单位TextView?此外,对于磅,数字,斜杠和单位TextViews都在同一行上,并且都在日期Textview之上。以及活动名称TextView是英镑TextView的左侧,因此它不会与磅,数字,斜杠和单位TextViews重叠。就像步行和锻炼行一样。
答案 0 :(得分:1)
对于右侧项目(单位,日期,斜线等)采用LinearLayout 把它放在相对布局中并设置为align_parentright =“true”
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dip"
android:paddingRight="10dip" >
<TextView
android:id="@+id/activityName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/verticalLayout"
android:text="New Name"
android:textSize="25sp" />
<LinearLayout
android:id="@id/verticalLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/pound"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="2dp"
android:text="#"
android:textSize="20sp" />
<TextView
android:id="@+id/unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:text="unit"
android:textSize="20sp" />
<TextView
android:id="@+id/slash"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="2dp"
android:text="/"
android:textSize="20sp" />
<TextView
android:id="@+id/number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Number"
android:textSize="20sp" />
</LinearLayout>
<TextView
android:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="Date"
android:textSize="10sp" />
</LinearLayout>
</RelativeLayout>
答案 1 :(得分:0)
尝试将英镑TextView&amp; TextView在垂直LinearLayout中的日期,然后将LinearLayout对齐到垂直和右侧居中。
希望这会有所帮助:)
答案 2 :(得分:0)
// try this
<?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="match_parent"
android:padding="5dp"
android:gravity="center">
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="New Name"
android:id="@+id/activityName"
android:textSize="25dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="#"
android:id="@+id/pound"
android:layout_marginRight="2dp"
android:textSize="20dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Number"
android:id="@+id/number"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:textSize="20dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="/"
android:id="@+id/slash"
android:layout_marginRight="5dp"
android:textSize="20dp" />
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:gravity="center"
android:layout_marginLeft="5dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="unit"
android:id="@+id/unit"
android:textSize="20dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Date"
android:id="@+id/date"
android:layout_marginTop="3dp"
android:textSize="10sp" />
</LinearLayout>
</LinearLayout>
答案 3 :(得分:0)
如果您在ListView中遇到此类问题,请确保使用适当的充气方法。必须指定父视图组以确保正确的通货膨胀。
mLayoutInflater.inflate(R.layout.listitem, parent, false);
而不是
mLayoutInflater.inflate(R.layout.listitem, null);