【问题标题】:RelativeLayout Scrollable相对布局可滚动
【发布时间】:2012-12-01 12:26:12
【问题描述】:

我已经尝试了很多次来对齐我的 RelativeLayout 中的元素,但我没有得到我期望的结果:

我想将第一个按钮对齐到右上角,然后我有多个 Textview,我希望它们都可以滚动,但是当我插入标签时出现错误,这是我的代码:

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

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

    <Button
          android:id="@+id/btnBrowser"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Browser"
          android:layout_marginTop="5dp"
            >
    </Button>

        <TextView
        android:id="@+id/txtAuthor"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20dp"
        android:textStyle="bold"
        android:textColor="#143781"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="20dp"
        android:layout_below="@+id/btnBrowser"
        >
    </TextView>
    <TextView
        android:id="@+id/txtDate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="14dp"
        android:textColor="#8D89B3"
        android:layout_marginTop="5dp"
        android:layout_marginLeft="20dp"
        android:layout_below="@+id/txtAuthor">
    </TextView>
    <TextView
        android:id="@+id/txtTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="14dp"
        android:textStyle="bold"
        android:textColor="#000000"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="5dp"
        android:layout_below="@+id/txtDate">
        >
    </TextView>
    <TextView
        android:id="@+id/txtMsg"
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content"
        android:textSize="14dp"
        android:textColor="#000000"
        android:layout_marginLeft="20dp"
        android:layout_below="@+id/txtTitle">
    </TextView>

    <Button
          android:id="@+id/btnReply"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Reply"
          android:layout_marginTop="20dp"
          android:layout_below="@+id/txtMsg"
          android:layout_centerInParent="@+id/txtMsg">

    </Button>
       </ScrollView>
</RelativeLayout>

【问题讨论】:

    标签: android android-relativelayout scrollable


    【解决方案1】:

    ScrollView 不允许超过一个直接孩子,这就是你得到错误的原因。所以你尝试如下:

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
            android:layout_height="fill_parent">
    
    <RelativeLayout
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">
             <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:text="Button" />
    
        <TextView
            android:id="@+id/textView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/button1"
            android:text="TextView" />
    
        <TextView
            android:id="@+id/textView2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/textView1"
            android:text="TextView" />
    
        <TextView
            android:id="@+id/textView3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/textView2"
            android:text="TextView" />
    
        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_below="@+id/textView3"
            android:text="Button" />
    
         </RelativeLayout>
    </ScrollView>
    

    【讨论】:

      【解决方案2】:

      您不能在滚动视图中放置多个小部件。为此,您必须用视图包装您的小部件。如下所示

      <ScrollView
          android:layout_width="fill_parent"
          android:layout_height="fill_parent" >
      
          <RelativeLayout
              android:layout_width="fill_parent"
              android:layout_height="fill_parent" >
              <Button
                  android:id="@+id/btnBrowser"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_centerVertical="false"
                  android:layout_marginTop="5dp"
                  android:text="Browser" >
      
              </Button>
      
      
              <TextView
                  android:id="@+id/txtAuthor"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_below="@+id/btnBrowser"
                  android:layout_marginLeft="20dp"
                  android:layout_marginTop="10dp"
                  android:text="Text"
                  android:textColor="#143781"
                  android:textSize="20dp"
                  android:textStyle="bold" >
              </TextView>
      
              <TextView
                  android:id="@+id/txtDate"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_below="@+id/txtAuthor"
                  android:layout_marginLeft="20dp"
                  android:layout_marginTop="5dp"
                  android:textColor="#8D89B3"
                  android:textSize="14dp" android:text="Text"
                  >
              </TextView>
      
              <TextView
                  android:id="@+id/txtTitle"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_below="@+id/txtDate"
                  android:layout_marginLeft="20dp"
                  android:layout_marginTop="5dp"
                  android:textColor="#000000"
                  android:textSize="14dp"
                  android:textStyle="bold" android:text="Text">
              </TextView>
      
              <TextView
                  android:id="@+id/txtMsg"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_below="@+id/txtTitle"
                  android:layout_marginLeft="20dp"
                  android:textColor="#000000"
                  android:textSize="14dp" android:text="Text">
              </TextView>
      
              <Button
                  android:id="@+id/btnReply"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_below="@+id/txtMsg"
                  android:layout_centerInParent="@+id/txtMsg"
                  android:layout_marginTop="20dp"
                  android:text="Reply" >
              </Button>
          </RelativeLayout>
      </ScrollView>
      

      【讨论】:

        【解决方案3】:

        您在relativelayout 中添加scrollview。您必须在 scrollview 中添加 Relativelayout 才能获得结果。还有一件事scrollview 一次只能包含一个孩子,所以将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
          • 1970-01-01
          相关资源
          最近更新 更多