【问题标题】:How to make a layout to be scrollable ? Android如何使布局可滚动?安卓
【发布时间】:2014-03-08 15:37:48
【问题描述】:

您好,我正在尝试创建一个布局,该布局将包含几个图像视图、一个按钮和一些文本,但问题是布局不可滚动。知道如何实现吗?非常感谢。

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

   <ImageView
    android:id="@+id/imageView1"
    android:layout_width="match_parent"
    android:layout_height="204dp"
    android:scaleType="fitXY"
    android:src="@drawable/pic11elit" android:contentDescription="ss"/>

   <TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="whatever"
    android:textAppearance="?android:attr/textAppearanceLarge" />

   <TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:textAppearance="?android:attr/textAppearanceMedium" />

  <TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Reservation No :27210 10020"
    android:textAppearance="?android:attr/textAppearanceMedium" />
         <Button
    android:id="@+id/On_back"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="73dp"
    android:layout_height="wrap_content"
    android:onClick="On_back"
    android:text="back" />
      </LinearLayout>

【问题讨论】:

标签: android layout scrollable


【解决方案1】:

尝试如下...

<?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" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="match_parent"
            android:layout_height="204dp"
            android:contentDescription="ss"
            android:scaleType="fitXY"
            android:src="@drawable/ic_launcher" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="whatever"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Reservation No :27210 10020"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <Button
            android:id="@+id/On_back"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="73dp"
            android:layout_height="wrap_content"
            android:onClick="On_back"
            android:text="back" />
    </LinearLayout>

</ScrollView>

【讨论】:

  • 我收到一条错误消息,说滚动视图只能托管一个直接子级。关于如何解决这个问题的任何建议?感谢您的回复!
  • @Nikolas...我已经更新了我的答案...查看答案。
  • 嘿,抱歉,我刚刚看到您的评论,我确实赞成并接受了您的回答。我有另一个问题。你知道我怎么能在按钮和文本视图之间留出一些空间,因为一切都被拉伸了,而且看起来不太好。对这位先生有什么建议吗?
  • 嘿抱歉,我可能错过了点击!没关系,感谢您的愿意,我只是使用了相对布局而不是线性布局。谢谢先生。
【解决方案2】:

您可以使用名为“ScrollView”的视图。将此用作您的父视图。
还要记住这些要点:
- ScrollView 是FrameLayout,这意味着您应该在其中放置一个包含要滚动的全部内容的子视图;这个孩子本身可能是一个具有复杂对象层次结构的布局管理器。
- 你不应该将 ScrollView 与 ListView 一起使用,因为 ListView 负责自己的垂直滚动。最重要的是,这样做会破坏 ListView 中处理大型列表的所有重要优化,因为它有效地强制 ListView 显示其整个项目列表以填充 ScrollView 提供的无限容器。
- ScrollView 只支持垂直滚动。对于水平滚动,请使用 Horizo​​ntalScrollView。

更多信息可以在这里找到; http://developer.android.com/reference/android/widget/ScrollView.html

【讨论】:

    【解决方案3】:

    非常简单。您必须使用可滚动的布局。示例:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    <ScrollView
        android:id="@+id/scrollView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    
        <TextView
            android:id="@+id/foo"
            android:layout_width="wrap_content"
            android:textAlignment="viewStart"
            android:layout_height="wrap_content" />
    </ScrollView>
    

    【讨论】:

      【解决方案4】:

      老兄只需在你的根布局中添加一个可滚动的视图

      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:orientation="vertical" >
      
      <ScrollView
         <ImageView
          android:id="@+id/imageView1"
          android:layout_width="match_parent"
          android:layout_height="204dp"
          android:scaleType="fitXY"
          android:src="@drawable/pic11elit" android:contentDescription="ss"/>
      
         <TextView
          android:id="@+id/textView1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="whatever"
          android:textAppearance="?android:attr/textAppearanceLarge" />
      
         <TextView
          android:id="@+id/textView2"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
      
          android:textAppearance="?android:attr/textAppearanceMedium" />
      
        <TextView
          android:id="@+id/textView3"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Reservation No :27210 10020"
          android:textAppearance="?android:attr/textAppearanceMedium" />
               <Button
          android:id="@+id/On_back"
          style="?android:attr/buttonStyleSmall"
          android:layout_width="73dp"
          android:layout_height="wrap_content"
          android:onClick="On_back"
          android:text="back" />
       </ScrollView>
            </LinearLayout>
      

      【讨论】:

        【解决方案5】:

        ScrollView 只能有一个孩子!将你的父 LinearLayout 放在 ScrollView 中就可以了:

            <?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="wrap_content">
        
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">
        
                <ImageView
                    android:id="@+id/imageView1"
                    android:layout_width="match_parent"
                    android:layout_height="204dp"
                    android:scaleType="fitXY"
                    android:src="@drawable/pic11elit"
                    android:contentDescription="ss" />
        
                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="whatever"
                    android:textAppearance="?android:attr/textAppearanceLarge" />
        
                <TextView
                    android:id="@+id/textView2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
        
                    android:textAppearance="?android:attr/textAppearanceMedium" />
        
                <TextView
                    android:id="@+id/textView3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Reservation No :27210 10020"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
        
                <Button
                    android:id="@+id/On_back"
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="73dp"
                    android:layout_height="wrap_content"
                    android:onClick="On_back"
                    android:text="back" />
            </LinearLayout>
        </ScrollView>
        

        【讨论】:

          猜你喜欢
          • 2010-10-27
          • 1970-01-01
          • 2010-12-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-11-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多