在RelativeLayout上添加子视图时出错

时间:2013-12-02 10:37:37

标签: android relativelayout

在运行相对布局后添加子视图时遇到问题。我所知道的,当我在布局中添加另一个视图时,我只是将xml代码放在布局上最后一个视图的底部。然后添加定位。

我想在评级栏下添加此代码:

     <TextView        
        android:id="@+id/viewSeparat2"
        android:layout_below="@+id/ratingBar1"
        android:layout_width="fill_parent" 
        android:layout_height="2px" 
        android:background="#DADADA" />

XML布局:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <RelativeLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:divider="@drawable/separator"
        android:dividerPadding="12dip"
        android:showDividers="middle"
         android:layout_margin="10dip"
         >

    <ImageView
        android:id="@+id/itemItem"
        android:src="@drawable/content_picture"
        android:tag="image_item_grid_image"
        android:background="@drawable/layout_bg"
        android:layout_width="wrap_content"
        android:layout_centerHorizontal="true"
        android:adjustViewBounds="true"
        android:layout_height="wrap_content"
        android:padding="10dip"
        android:contentDescription="Desc"
        android:scaleType="fitCenter" />


        <TextView
            android:id="@+id/textPid"
            android:layout_below="@+id/viewSeparator"        
            android:typeface="sans"
            android:textSize="15sp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dip"
            android:text="TextView" />

        <TextView
            android:id="@+id/textName"
            android:typeface="sans"
            android:textSize="15sp"
            android:layout_below="@+id/textPid"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dip"
            android:text="TextView" />

        <TextView
            android:id="@+id/textSellingPrice"
            android:typeface="sans"
            android:textSize="15sp"
            android:layout_below="@+id/textName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dip"
            android:text="TextView" />

        <RatingBar
            android:id="@+id/ratingBar1"
            android:typeface="sans"
            android:textSize="15sp"
            android:layout_below="@+id/textSellingPrice"
            android:layout_width="wrap_content"
            android:layout_margin="10dip"
            android:layout_height="wrap_content" />


        <ImageButton
            android:id="@+id/addTOCart"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/itemItem"
            android:background="?android:attr/selectableItemBackground"
            style="?android:attr/borderlessButtonStyle"
            android:layout_centerHorizontal="true"
            android:src="@drawable/add_to_cart" />

        <TextView        
            android:id="@+id/viewSeparator"
            android:layout_below="@+id/addTOCart"
            android:layout_width="fill_parent" 
            android:layout_height="2px" 
            android:background="#DADADA" />

         <TextView        
            android:id="@+id/viewSeparat2"
            android:layout_below="@+id/ratingBar1"
            android:layout_width="fill_parent" 
            android:layout_height="2px" 
            android:background="#DADADA" />


    </RelativeLayout >

</ScrollView >

更新

viewSeparat2添加到ratingBar1时出错。

3 个答案:

答案 0 :(得分:0)

也许你想这样做:

        android:id="@+id/viewSeparat2"
        android:layout_below="@id/viewSeparator"

答案 1 :(得分:0)

见这个

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

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dip"
        android:divider="@drawable/seperator"
        android:dividerPadding="12dip"
        android:showDividers="middle" >

        <ImageView
            android:id="@+id/itemItem"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:adjustViewBounds="true"
             android:padding="10dip"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_launcher"
            android:tag="image_item_grid_image" />

        <TextView
            android:id="@+id/textPid"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/viewSeparator"
            android:layout_margin="10dip"
            android:text="TextView"
            android:textSize="15sp"
            android:typeface="sans" />

        <TextView
            android:id="@+id/textName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textPid"
            android:layout_margin="10dip"
            android:text="TextView"
            android:textSize="15sp"
            android:typeface="sans" />

        <TextView
            android:id="@+id/textSellingPrice"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textName"
            android:layout_margin="10dip"
            android:text="TextView"
            android:textSize="15sp"
            android:typeface="sans" />

        <RatingBar
            android:id="@+id/ratingBar1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textSellingPrice"
            android:layout_margin="10dip"
            android:textSize="15sp"
            android:typeface="sans" />

        <TextView
            android:id="@+id/viewSeparat2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/ratingBar1"
            android:text="jhadgjad" />

        <ImageButton
            android:id="@+id/addTOCart"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/itemItem"
            android:layout_centerHorizontal="true" 
            android:src="@drawable/ic_action_call"/>

        <TextView
            android:id="@+id/viewSeparator"
            android:layout_width="fill_parent"
            android:layout_height="2px"
            android:layout_below="@+id/addTOCart"
            android:background="#DADADA" />

        <TextView
            android:id="@+id/viewSeparat2"
            android:layout_width="fill_parent"
            android:layout_height="2px"
            android:layout_below="@+id/viewSeparat2"
            android:background="#DADADA" />
    </RelativeLayout>

</ScrollView>

答案 2 :(得分:0)

LinearLayout最适合您的情况,只需将LinearLayout的orientation属性设置为vertical,然后从xml中删除每个UI组件中的android:layout_below,并添加要在屏幕中显示的序列中的组件。虽然LinearLayout很慢,但在您的使用案例中,它最适合您enter code here

仅供参考:您可能已经知道,ScrollView只能有一个孩子(但该孩子可能有自己的子孩子)