【问题标题】:RelativeLayout - Scroll down相对布局 - 向下滚动
【发布时间】:2012-01-29 14:04:05
【问题描述】:

我有以下布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:id="@+navigate/RLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ABABAB"
    xmlns:android="http://schemas.android.com/apk/res/android"
    >
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:textStyle="bold"
        android:id="@+id/myid" 
        android:layout_centerHorizontal="true"
        android:src="@drawable/myid"
        android:layout_marginTop="15dp" />.
    <RelativeLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_margin="10dp"
        android:orientation="vertical"
        android:id="@+id/firstRectangle"
        android:background="@drawable/bg"
        android:layout_below="@+id/myid" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:textStyle="bold|italic"
        android:textColor="#000000"
        android:id="@+id/hotelinfos"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"
        android:layout_below="@+id/myid"
        android:layout_alignLeft="@+id/myid"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:textStyle="bold"
        android:textColor="#000000"
        android:id="@+id/hotelname"
        android:layout_below="@+id/hotelinfos"
        android:layout_alignLeft="@+id/hotelinfos" 
        android:layout_marginTop="10dp" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:textColor="#000000"
        android:id="@+id/hoteladdress"
        android:layout_below="@+id/hotelname"
        android:layout_alignLeft="@+id/hotelname" 
        android:layout_marginTop="10dp" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:id="@+id/hotelphone"
        android:layout_below="@+id/hoteladdress"
        android:layout_alignLeft="@+id/hoteladdress" 
        android:layout_marginTop="10dp"
        android:textColor="#12C"
        android:textStyle="bold|italic"
        android:onClick="onClick"
        android:clickable="true" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:textColor="#12C"
        android:onClick="onClick"
        android:clickable="true"
        android:textStyle="bold|italic"
        android:id="@+id/hotelemail"
        android:layout_below="@+id/hotelphone"
        android:layout_alignLeft="@+id/hotelphone"
        android:layout_marginTop="10dp"
        android:paddingBottom="10dp" />
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/picture" 
        android:layout_below="@+id/myid"
        android:layout_alignParentRight="true"
        android:layout_marginRight="10dp"       
        android:layout_marginTop="10dp"/>
    </RelativeLayout>
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_margin="10dp"
        android:orientation="vertical"
        android:id="@+id/SecondRectangle"
        android:background="@drawable/bg"
        android:layout_below="@+id/firstRectangle" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:textColor="#000000"
        android:textStyle="bold|italic"
        android:id="@+id/bookinginfos"
        android:layout_below="@+id/firstRectangle"
        android:layout_alignLeft="@+id/firstRectangle"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:textColor="#000000"
        android:id="@+id/pnr"
        android:layout_below="@+id/bookinginfos"
        android:layout_alignLeft="@+id/bookinginfos" 
        android:layout_marginTop="10dp"
        android:layout_marginRight="10dp" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:textColor="#000000"
        android:id="@+id/segmentCode"
        android:layout_below="@+id/pnr"
        android:layout_alignLeft="@+id/pnr"
        android:layout_marginRight="10dp" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:textColor="#000000"
        android:id="@+id/checkin"
        android:layout_below="@+id/segmentCode"
        android:layout_alignLeft="@+id/segmentCode" 
        android:layout_marginTop="10dp"
        android:layout_marginRight="10dp" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:textColor="#000000"
        android:id="@+id/checkout"
        android:layout_below="@+id/checkin"
        android:layout_alignLeft="@+id/checkin" 
        android:layout_marginRight="10dp" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:textColor="#000000"
        android:id="@+id/nights"    
        android:layout_below="@+id/checkout"
        android:layout_alignLeft="@+id/checkout"
        android:layout_marginRight="10dp" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:textColor="#000000"
        android:id="@+id/roomType"
        android:layout_below="@+id/nights"
        android:layout_alignLeft="@+id/nights" 
        android:layout_marginTop="10dp"
        android:layout_marginRight="10dp" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:textColor="#000000"
        android:id="@+id/boardBasis"
        android:layout_below="@+id/roomType"
        android:layout_alignLeft="@+id/roomType"
        android:layout_marginRight="10dp" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:textColor="#000000"
        android:id="@+id/paxNames"
        android:layout_below="@+id/boardBasis"
        android:layout_alignLeft="@+id/boardBasis" 
        android:layout_marginTop="10dp"
        android:layout_marginRight="10dp"
        android:paddingBottom="10dp" />
    </RelativeLayout>
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_margin="10dp"
        android:orientation="vertical"
        android:id="@+id/thirdRectangle"
        android:background="@drawable/bg"
        android:layout_below="@+id/SecondRectangle" >
            <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:textColor="#000000"
        android:textStyle="bold|italic"
        android:id="@+id/forHotel"
        android:layout_below="@+id/SecondRectangle"
        android:layout_alignLeft="@+id/SecondRectangle" 
        android:layout_marginLeft="10dp" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:textColor="#000000"
        android:id="@+id/supplierCode"
        android:layout_below="@+id/forHotel"
        android:layout_alignLeft="@+id/forHotel"
        android:layout_marginTop="10dp"
        android:layout_marginRight="10dp"
        android:paddingBottom="10dp"/>
        </ScrollView>

    </RelativeLayout>
</RelativeLayout>

我想在这个布局中滚动,因为 relativelayout 的最后一部分是不可见的! 但我不知道该怎么做。 我试图添加一个滚动视图,但我得到了错误:滚动视图只能托管一个直接的孩子! 你有什么建议给我吗?

提前感谢您的帮助!

【问题讨论】:

    标签: android android-scrollview android-relativelayout


    【解决方案1】:

    ScrollView 需要一个子视图,在你的布局中你有 2 个TextView。 要使ScrollView 工作,您必须将TextView 包装在像LinearLayoutRelativeLayout 这样的视图组中。

    修改后的代码:

    <?xml version="1.0" encoding="utf-8"?>
    <ScrollView android:layout_width="match_parent" android:layout_height="match_parent">
    <RelativeLayout
        android:id="@+navigate/RLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#ABABAB"
        xmlns:android="http://schemas.android.com/apk/res/android"
        >
    // ... THE REST OF YOUR CODE
    </RelativeLayout>
    </ScrollView>
    

    【讨论】:

      【解决方案2】:

      把这段代码放在你想要开始滚动的地方:

      <ScrollView 
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          >
      

      然后在你想停止它的时候结束。

      【讨论】:

        【解决方案3】:

        由于scrollview只能有一个孩子,所以孩子可以是任何layout。加入LinearLayoutRelativeLayout。所以它应该是这样的。 &lt;ScrollView&gt;&lt;RelativeLayout&gt;&lt;/RelativeLayout&gt;&lt;/ScrollView&gt;

        你的代码最终会是这样

        <RelativeLayout
        android:id="@+navigate/RLayout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#ABABAB"
        xmlns:android="http://schemas.android.com/apk/res/android"
        >
        
        <ScrollView>
        android:id="@+navigate/Scrollview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        
        <RelativeLayout
        android:id="@+navigate/RLayout02"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        
        >
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="10dp"
            android:textStyle="bold"
            android:id="@+id/hcorpo" 
            android:layout_centerHorizontal="true"
            android:src="@drawable/hcorpo"
            android:layout_marginTop="15dp" />.
        <RelativeLayout android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_margin="10dp"
            android:orientation="vertical"
            android:id="@+id/firstRectangle"
            android:background="@drawable/bg"
            android:layout_below="@+id/hcorpo" >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="10dp"
            android:textStyle="bold|italic"
            android:textColor="#000000"
            android:id="@+id/hotelinfos"
            android:layout_marginTop="10dp"
            android:layout_marginLeft="10dp"
            android:layout_below="@+id/hcorpo"
            android:layout_alignLeft="@+id/hcorpo"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="10dp"
            android:textStyle="bold"
            android:textColor="#000000"
            android:id="@+id/hotelname"
            android:layout_below="@+id/hotelinfos"
            android:layout_alignLeft="@+id/hotelinfos" 
            android:layout_marginTop="10dp" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="10dp"
            android:textColor="#000000"
            android:id="@+id/hoteladdress"
            android:layout_below="@+id/hotelname"
            android:layout_alignLeft="@+id/hotelname" 
            android:layout_marginTop="10dp" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="10dp"
            android:id="@+id/hotelphone"
            android:layout_below="@+id/hoteladdress"
            android:layout_alignLeft="@+id/hoteladdress" 
            android:layout_marginTop="10dp"
            android:textColor="#12C"
            android:textStyle="bold|italic"
            android:onClick="onClick"
            android:clickable="true" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="10dp"
            android:textColor="#12C"
            android:onClick="onClick"
            android:clickable="true"
            android:textStyle="bold|italic"
            android:id="@+id/hotelemail"
            android:layout_below="@+id/hotelphone"
            android:layout_alignLeft="@+id/hotelphone"
            android:layout_marginTop="10dp"
            android:paddingBottom="10dp" />
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/picture" 
            android:layout_below="@+id/hcorpo"
            android:layout_alignParentRight="true"
            android:layout_marginRight="10dp"       
            android:layout_marginTop="10dp"/>
        </RelativeLayout>
        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_margin="10dp"
            android:orientation="vertical"
            android:id="@+id/SecondRectangle"
            android:background="@drawable/bg"
            android:layout_below="@+id/firstRectangle" >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="10dp"
            android:textColor="#000000"
            android:textStyle="bold|italic"
            android:id="@+id/bookinginfos"
            android:layout_below="@+id/firstRectangle"
            android:layout_alignLeft="@+id/firstRectangle"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="10dp"
            android:textColor="#000000"
            android:id="@+id/pnr"
            android:layout_below="@+id/bookinginfos"
            android:layout_alignLeft="@+id/bookinginfos" 
            android:layout_marginTop="10dp"
            android:layout_marginRight="10dp" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="10dp"
            android:textColor="#000000"
            android:id="@+id/segmentCode"
            android:layout_below="@+id/pnr"
            android:layout_alignLeft="@+id/pnr"
            android:layout_marginRight="10dp" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="10dp"
            android:textColor="#000000"
            android:id="@+id/checkin"
            android:layout_below="@+id/segmentCode"
            android:layout_alignLeft="@+id/segmentCode" 
            android:layout_marginTop="10dp"
            android:layout_marginRight="10dp" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="10dp"
            android:textColor="#000000"
            android:id="@+id/checkout"
            android:layout_below="@+id/checkin"
            android:layout_alignLeft="@+id/checkin" 
            android:layout_marginRight="10dp" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="10dp"
            android:textColor="#000000"
            android:id="@+id/nights"    
            android:layout_below="@+id/checkout"
            android:layout_alignLeft="@+id/checkout"
            android:layout_marginRight="10dp" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="10dp"
            android:textColor="#000000"
            android:id="@+id/roomType"
            android:layout_below="@+id/nights"
            android:layout_alignLeft="@+id/nights" 
            android:layout_marginTop="10dp"
            android:layout_marginRight="10dp" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="10dp"
            android:textColor="#000000"
            android:id="@+id/boardBasis"
            android:layout_below="@+id/roomType"
            android:layout_alignLeft="@+id/roomType"
            android:layout_marginRight="10dp" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="10dp"
            android:textColor="#000000"
            android:id="@+id/paxNames"
            android:layout_below="@+id/boardBasis"
            android:layout_alignLeft="@+id/boardBasis" 
            android:layout_marginTop="10dp"
            android:layout_marginRight="10dp"
            android:paddingBottom="10dp" />
        </RelativeLayout>
        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_margin="10dp"
            android:orientation="vertical"
            android:id="@+id/thirdRectangle"
            android:background="@drawable/bg"
            android:layout_below="@+id/SecondRectangle" >
        
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="10dp"
            android:textColor="#000000"
            android:textStyle="bold|italic"
            android:id="@+id/forHotel"
            android:layout_below="@+id/SecondRectangle"
            android:layout_alignLeft="@+id/SecondRectangle" 
            android:layout_marginLeft="10dp" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="10dp"
            android:textColor="#000000"
            android:id="@+id/supplierCode"
            android:layout_below="@+id/forHotel"
            android:layout_alignLeft="@+id/forHotel"
            android:layout_marginTop="10dp"
            android:layout_marginRight="10dp"
            android:paddingBottom="10dp"/>
        
        
        </RelativeLayout>
        </RelativeLayout>
        
        </ScrollView>
        
        </RelativeLayout>
        

        【讨论】:

          【解决方案4】:

          你最后的RelativeLayout

           <RelativeLayout
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:layout_gravity="center_horizontal"
                  android:layout_margin="10dp"
                  android:orientation="vertical"
                  android:id="@+id/thirdRectangle"
                  android:background="@drawable/bg"
                  android:layout_below="@+id/SecondRectangle" >
                      <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content">
          
              <TextView
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:textSize="10dp"
                  android:textColor="#000000"
                  android:textStyle="bold|italic"
                  android:id="@+id/forHotel"
                  android:layout_below="@+id/SecondRectangle"
                  android:layout_alignLeft="@+id/SecondRectangle" 
                  android:layout_marginLeft="10dp" />
              <TextView
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:textSize="10dp"
                  android:textColor="#000000"
                  android:id="@+id/supplierCode"
                  android:layout_below="@+id/forHotel"
                  android:layout_alignLeft="@+id/forHotel"
                  android:layout_marginTop="10dp"
                  android:layout_marginRight="10dp"
                  android:paddingBottom="10dp"/>
                  </ScrollView>
          
              </RelativeLayout>
          

          应该看起来像这样:

          <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content">
           <RelativeLayout
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:layout_gravity="center_horizontal"
                  android:layout_margin="10dp"
                  android:orientation="vertical"
                  android:id="@+id/thirdRectangle"
                  android:background="@drawable/bg"
                  android:layout_below="@+id/SecondRectangle" >
          
          
              <TextView
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:textSize="10dp"
                  android:textColor="#000000"
                  android:textStyle="bold|italic"
                  android:id="@+id/forHotel"
                  android:layout_below="@+id/SecondRectangle"
                  android:layout_alignLeft="@+id/SecondRectangle" 
                  android:layout_marginLeft="10dp" />
              <TextView
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:textSize="10dp"
                  android:textColor="#000000"
                  android:id="@+id/supplierCode"
                  android:layout_below="@+id/forHotel"
                  android:layout_alignLeft="@+id/forHotel"
                  android:layout_marginTop="10dp"
                  android:layout_marginRight="10dp"
                  android:paddingBottom="10dp"/>
          
              </RelativeLayout>
           </ScrollView>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-08-14
            相关资源
            最近更新 更多