可滚动的布局

时间:2012-03-20 13:06:39

标签: android android-layout

我该怎么做这样的布局?标题不应滚动,应始终可见。

enter image description here

当我尝试将ScrollView放入LinearLayout时,问题是Android引发了错误。

标记:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              style="@style/baseLayout">
    <LinearLayout
        style="@style/app_header" />
    <ScrollView
        style="@style/fillParent">
        <!-- elements here -->
    </ScrollView>
</LinearLayout>

样式:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="app_theme" parent="android:Theme">
    </style>

    <style name="fillParent">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">fill_parent</item>
    </style>
    <style name="fullWidth">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
    </style>
    <style name="wrapContent">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
    </style>

    <style name="baseLayout" parent="fillParent">
        <item name="android:orientation">vertical</item>
        <item name="android:background">@drawable/app_bg</item>
    </style>

    <style name="app_header" parent="fullWidth">
        <item name="android:background">@drawable/header_bg</item>
    </style>
</resources>

3 个答案:

答案 0 :(得分:2)

以下代码适用于我,您是否可以发布代码并让我们看看您可能做错了什么?

<?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" >
    <TextView android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TITLE BAR"/>
    <ScrollView 
        android:layout_width="match_parent"
        android:layout_height="match_parent">

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

<强>解决方案

问题是忍者在ScrollView中有超过1个直接孩子。

答案 1 :(得分:1)

如果将“线性”布局放在“滚动”视图的旁边,则表示出现错误是不正常的。 请在您的代码中尝试以下代码段。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

<TextView android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="TITLE BAR"/>

  <ScrollView 
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true"
    android:orientation="vertical" >

      <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
        .
        .
      </LinearLayout>

  </ScrollView>

</LinearLayout>

我希望这会有所帮助。

答案 2 :(得分:1)

在你的标记中:

 ....  
 <ScrollView
      style="@style/fillParent">
       <!-- elements here -->
 </ScrollView>
 ... 

“这里的元素” - 如果不止一个,那么您将收到错误,因为ScrollView只能托管一个直接子项(例如布局)。