在我的ExpandableListView中,不能将我的子行元素放在右侧

时间:2012-03-27 09:09:38

标签: android android-layout expandablelistview

我使用以下代码创建了一个ExpandableListView:

<ExpandableListView
    android:id="@+id/android:list"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_marginTop="5dp"
    android:layout_weight="1"
    android:cacheColorHint="#00000000" /> <!-- This last line fixes a bug with a black background when scrolling through the list -->

定义父行的xml是:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<TextView
    android:id="@+id/childname"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="40dp"
    android:textSize="20sp" />

</LinearLayout>

最后,定义子行的xml是:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1" >

<TextView
    android:id="@+id/childname"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="60dp"
    android:layout_weight="0.80"
    android:focusable="false"
    android:textSize="14sp" />

<CheckBox
    android:id="@+id/check1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:layout_weight="0.2"
    android:focusable="false" />

</LinearLayout>

我想要完成的是将CheckBox放在屏幕的最右侧。 在设计时,在eclipse中,元素实际上是在右边。但是当我在手机中安装它时,它不是。

以下是结果的屏幕截图:http://img444.imageshack.us/img444/584/97598265.png

任何想法可能出错?

此致 菲利普

更新 根据建议,这就是我的工作:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

<TextView
    android:id="@+id/childname"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="60dp"
    android:focusable="false"
    android:layout_centerVertical="true"
    android:textSize="14sp" />

<CheckBox
    android:id="@+id/check1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:focusable="false" />
</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

使用relativeLayout进行正确对齐

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1" >

<TextView
android:id="@+id/childname"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="60dp"
android:layout_weight="0.80"
android:focusable="false"
android:textSize="14sp" />

<CheckBox
android:id="@+id/check1"
android:layout_alignParentRight="true"
android:layout_alignBottom="@id/childname"
android:layout_toRightOf="@id/childname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight="0.2"
android:focusable="false" />