Android:ExpandableListView中同一行上的TextView和Button

时间:2014-09-25 14:40:14

标签: android xml android-layout button expandablelistview

所以我有一个ExpandableListView,基本上我有一些文本(人的名字),然后我想在同一行上的一个按钮(如果可能的话,向右侧)。目前,这个代码在我的XML文件中有一行文本,然后是下一行的按钮,我已经玩过它但是无法弄清楚如何在一行上得到它。

LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="55dip"
android:orientation="horizontal"
android:weightSum="1" >

<TextView
android:id="@+id/lblListItem"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="17dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:paddingLeft="?android:attr/expandableListPreferredChildPaddingLeft" />

<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="false"
android:layout_weight="0.8"
android:textSize="11dp"
android:text="Checkout"
android:id="@+id/checkout" />

</LinearLayout>

2 个答案:

答案 0 :(得分:2)

这样就可以了。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="55dip"
    android:orientation="horizintal" // Edited here
    androi:weightSum="1" >  // here

<TextView
    android:id="@+id/lblListItem"
    android:layout_width="match_parent"  //and here
    android:layout_height="35dp"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:gravity="center_vertical"
    android:layout_weight="0.2" // here
    android:paddingLeft="?android:attr/expandableListPreferredChildPaddingLeft" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="match_parent" // and here
    android:layout_height="wrap_content"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:layout_weight="0.8" // and here
    android:textSize="12dp"
    android:text="Checkout"
    android:id="@+id/checkout" />

</LinearLayout>

使用weighum时确保2件事

1)如果方向是水平的,那么要连续显示的所有子视图的宽度都需要具有“match_parent”和layout_weight的某个值。

2)0.2将给出母体水平宽度的80%,0.8将给出20%

答案 1 :(得分:1)

你有

android:orientation="vertical"

在您的父LinearLayout中,从上到下堆叠元素(自然地)。删除该行(因为horizontalLinearLayout的默认方向)。然后,您需要使用weightmargin将其放置在您想要的位置。

另一种选择是将LinearLayout替换为RelativeLayout。这样您就可以使用android:alignParentRight="true"上的Button将其放在屏幕右侧(默认情况下RelativeLayoutViews置于左上角。)< / p>