【问题标题】:How to add scroll bar to the Relative Layout?如何在相对布局中添加滚动条?
【发布时间】:2018-05-22 10:28:55
【问题描述】:

我是 Android 应用开发的新手。现在我正在设计一个应用程序,因为我有一个Activity,其中包含一些内容,但这些内容更多,所以内容不在屏幕上。现在我想向用户展示该内容,但我不知道如何将滚动条保持到Activity。

如何使用RelativeLayout通过滚动条向最终用户显示全部内容?

【问题讨论】:

    标签: android android-layout android-ui


    【解决方案1】:

    请看下面的xml文件示例代码。

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/ScrollView01"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    
        <RelativeLayout
            android:id="@+id/RelativeLayout01"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >
    
            <LinearLayout
                android:id="@+id/LinearLayout01"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="vertical" >
    
                <TextView
                    android:id="@+id/TextView01"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="20dip"
                    android:text="@+id/TextView01" >
                </TextView>
    
                <TextView
                    android:id="@+id/TextView01"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="20dip"
                    android:text="@+id/TextView01" >
                </TextView>
    
                <TextView
                    android:id="@+id/TextView01"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="20dip"
                    android:text="@+id/TextView01" >
                </TextView>
    
                <TextView
                    android:id="@+id/TextView01"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="20dip"
                    android:text="@+id/TextView01" >
                </TextView>
    
                <TextView
                    android:id="@+id/TextView01"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="20dip"
                    android:text="@+id/TextView01" >
                </TextView>
    
                <TextView
                    android:id="@+id/TextView01"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="20dip"
                    android:text="@+id/TextView01" >
                </TextView>
    
                <TextView
                    android:id="@+id/TextView01"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="20dip"
                    android:text="@+id/TextView01" >
                </TextView>
    
                <TextView
                    android:id="@+id/TextView01"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="20dip"
                    android:text="@+id/TextView01" >
                </TextView>
    
                <TextView
                    android:id="@+id/TextView01"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="20dip"
                    android:text="@+id/TextView01" >
                </TextView>
            </LinearLayout>
        </RelativeLayout>
    
    </ScrollView>
    

    【讨论】:

    • RelativeLayout在这个视图层次结构中是多余的,IMO。
    【解决方案2】:

    把你的RelativeLayout 放在ScrollView 里面

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/ScrollView01"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
      ------- here RelativeLayout ------
    </ScrollView>
    

    【讨论】:

      【解决方案3】:

      您想用scrollView 括起来。

      【讨论】:

        【解决方案4】:

        检查以下示例布局文件

        <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/ScrollView01" android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:background="@color/white">
        <RelativeLayout android:layout_height="fill_parent"
            android:layout_width="fill_parent">
            <ImageView android:id="@+id/image1"
                android:layout_width="wrap_content"  
                            android:layout_height="wrap_content"
                android:layout_marginLeft="15dip" android:layout_marginTop="15dip"
                android:src="@drawable/btn_blank" android:clickable="true" /> </RelativeLayout> </ScrollView>
        

        【讨论】:

          【解决方案5】:

          下面的代码应该可以解决问题:

          <?xml version="1.0" encoding="utf-8"?>
          <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/ScrollView01"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent" >
          
          <RelativeLayout
          android:id="@+id/RelativeLayout01"
          android:layout_width="fill_parent"
          android:layout_height="638dp" >
          
          <TextView
              android:id="@+id/textView1"
              style="@style/normalcode"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignParentLeft="true"
              android:layout_alignParentTop="true"
              android:layout_marginTop="64dp"
              android:text="Email" />
          
          <TextView
              android:id="@+id/textView2"
              style="@style/normalcode"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_below="@+id/textView1"
              android:layout_marginTop="41dp"
              android:text="Password" />
          
          <TextView
              android:id="@+id/textView3"
              style="@style/normalcode"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignRight="@+id/textView2"
              android:layout_below="@+id/textView2"
              android:layout_marginTop="47dp"
              android:text="Confirm Password" />
          
          <EditText
              android:id="@+id/editText1"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignBaseline="@+id/textView1"
              android:layout_alignBottom="@+id/textView1"
              android:layout_alignParentRight="true"
              android:layout_toRightOf="@+id/textView4"
              android:inputType="textEmailAddress" >
          
              <requestFocus />
          </EditText>
          
          <EditText
              android:id="@+id/editText2"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignBaseline="@+id/textView2"
              android:layout_alignBottom="@+id/textView2"
              android:layout_alignLeft="@+id/editText1"
              android:layout_alignParentRight="true"
              android:inputType="textPassword" />
          
          <EditText
              android:id="@+id/editText3"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignBaseline="@+id/textView3"
              android:layout_alignBottom="@+id/textView3"
              android:layout_alignLeft="@+id/editText2"
              android:layout_alignParentRight="true"
              android:inputType="textPassword" />
          
          
          <TextView
              android:id="@+id/textView4"
              style="@style/normalcode"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignParentLeft="true"
              android:layout_below="@+id/textView3"
              android:layout_marginTop="42dp"
              android:text="Date of Birth" />
          
          <DatePicker
              android:id="@+id/datePicker1"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignParentRight="true"
              android:layout_below="@+id/textView4" />
          
          <TextView
              android:id="@+id/textView5"
              style="@style/normalcode"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_below="@+id/datePicker1"
              android:layout_marginTop="60dp"
              android:layout_toLeftOf="@+id/datePicker1"
              android:text="Gender" />
          
          <RadioButton
              android:id="@+id/radioButton1"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignBaseline="@+id/textView5"
              android:layout_alignBottom="@+id/textView5"
              android:layout_alignLeft="@+id/editText3"
              android:layout_marginLeft="24dp"
              android:text="Male" />
          
          <RadioButton
              android:id="@+id/radioButton2"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignLeft="@+id/radioButton1"
              android:layout_below="@+id/radioButton1"
              android:layout_marginTop="14dp"
              android:text="Female" />
          
          <Button
              android:id="@+id/button1"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignParentBottom="true"
              android:layout_marginBottom="23dp"
              android:layout_toLeftOf="@+id/radioButton2"
              android:background="@drawable/rectbutton"
              android:text="Sign Up" />
          

          【讨论】:

            【解决方案6】:

            我用过

            <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/ScrollView01"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
            
            <RelativeLayout
            

            完美运行

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-05-22
              • 2014-11-12
              • 1970-01-01
              • 2015-03-06
              • 1970-01-01
              • 1970-01-01
              • 2019-05-30
              • 2020-06-21
              相关资源
              最近更新 更多