【问题标题】:RelativeLayout layout issue in Item Layout of ListViewListView的Item Layout中的RelativeLayout布局问题
【发布时间】:2015-05-05 07:49:31
【问题描述】:

我正在使用 ListView 项目布局,但我无法在 Relativelayout 中排列子位置。

这是我的项目布局框架:

我想要第一个 ImageView 在顶部,一个 TextView 在中心,第二个 ImageView 在底部。

这是我的布局代码(绿色相对布局)

<RelativeLayout
              android:id="@+id/bub_right"
              android:layout_width="30dip"
              android:layout_height="wrap_content"
              android:layout_alignTop="@id/bub_left"
              android:layout_alignBottom="@id/bub_left"
              android:layout_alignParentEnd="true"
              android:layout_alignParentRight="true"
              android:background="#666666"
              android:gravity="right">
              <ImageView
                  android:layout_width="30dip"
                  android:layout_height="20dip"
                  android:id="@+id/bub_up"
                  android:layout_alignParentTop="true"
                  android:src="@drawable/up"/>
              <TextView
                  android:layout_width="30dip"
                  android:layout_height="20dip"
                  android:text="123"
                  android:layout_centerVertical="true"
                  android:id="@+id/bub_score"
                  android:textSize="15dp"/>
              <ImageView
                  android:id="@+id/bub_down"
                  android:layout_width="30dip"
                  android:layout_alignParentBottom="true"
                  android:layout_height="20dip"
                  android:src="@drawable/down"/>
 </RelativeLayout>

我设置这两行是为了确保绿色相对布局与红色相对布局具有相同的高度。

     android:layout_alignTop="@id/bub_left"
     android:layout_alignBottom="@id/bub_left"

结果是这样的:

请帮忙,在此先感谢。

【问题讨论】:

  • 链接失效,请修复
  • 你的RelativeLayout是structured as a LinearLayout(除了alignParentXYZ属性)...你真的需要一个ReltiveLayout吗? I see no use of children relativity.
  • 你能画出你真正期望的样子吗?
  • @DerGolem 我使用RelativeLayout,因为我希望三个孩子是Top,Center,Bottom
  • @MurtazaKhursheedHussain 好的,等一下

标签: android android-layout listview


【解决方案1】:

请用此代码替换您的活动。并检查结果。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/bub_right"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="1" >

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:gravity="center"
    android:orientation="vertical"
    android:weightSum="3" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Left Side layout" />
</LinearLayout>

<LinearLayout
    android:layout_width="50dp"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    android:weightSum="1" >

    <ImageView
        android:id="@+id/bub_up"
        android:layout_width="30dip"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:src="@drawable/ic_launcher"
        android:textSize="15dp" />

    <TextView
        android:id="@+id/bub_score"
        android:layout_width="30dip"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="center"
        android:text="123" />

    <ImageView
        android:id="@+id/bub_down"
        android:layout_width="30dip"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:src="@drawable/ic_launcher" />
</LinearLayout>

【讨论】:

  • 是的,正是这个代码。之后,您可以使用可绘制的图标。先检查一下
  • 我把结果图片放在那里。你想要这样吗?
  • 我想要这样 img1.ph.126.net/Nau8D4xqkcTzfb00Q3S2Sg==/… 我将这些行添加到您的 LinearLayout。 结果是这个。img2.ph.126.net/Zxw2BpvXENkY9PsHBGFo9w==/…
  • 现在检查我的代码。并用此代码替换您的 xml。我按照你的要求安排了
  • 现在检查。我为右侧布局提供了固定大小,即 40dp。根据您的要求放置该尺寸
【解决方案2】:
You can try this:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_toLeftOf="@+id/layout"
        android:layout_alignParentLeft="true"
        android:orientation="vertical" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="hii" />

    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/layout"
        android:layout_width="50dp"
        android:layout_height="match_parent"
        android:layout_alignParentRight="true"
        android:orientation="vertical" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:text="hii" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:layout_centerInParent="true"
            android:text="hii" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:text="hii" />
    </RelativeLayout>

</RelativeLayout>

【讨论】:

  • 我试过你的代码,结果是这样的。在listview中。img0.ph.126.net/7srF3Q0GQD14gKxyAOzjMg==/…
  • 这是你列表视图的一排?
  • 好吧,在检查了它作为一个布局的外观后,我已经发布了这段代码。可能您已经在列表视图中设置了任何属性,因此它将与相对布局属性冲突。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-02
  • 1970-01-01
  • 1970-01-01
  • 2010-11-17
相关资源
最近更新 更多