0

我有一个布局,我想在其上应用视差滚动。我的布局如下:

在此处输入图像描述

相关的 XML 是:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/top_control_bar"
        android:background="@drawable/container_dropshadow">
        <RelativeLayout
            android:id="@+id/logo_layout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:background="#ffffff">
            <ImageView
                android:id="@+id/organiser_logo"
                android:adjustViewBounds="true"
                android:scaleType="centerCrop"
                android:layout_centerInParent="true"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </RelativeLayout>
    </RelativeLayout>
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/bottom_layout"
        android:layout_below="@+id/top_control_bar">
        <LinearLayout
            android:orientation="vertical"
            android:minWidth="25px"
            android:minHeight="25px"
            android:layout_width="fill_parent"
            android:layout_below="@+id/top_control_bar"
            android:layout_height="wrap_content"
            android:background="@drawable/container_dropshadow"
            android:id="@+id/explanation_wrapper">
            <TextView
                android:text="@string/no_event_header"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:id="@+id/explanation_header"
                android:padding="8dip"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent" />
            <TextView
                android:text="@string/no_event_text_1st_paragraph"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:id="@+id/explanation_1st_paragraph"
                android:paddingTop="8dip"
                android:paddingRight="20dip"
                android:paddingBottom="10dip"
                android:paddingLeft="10dip" />
        </LinearLayout>
        <ListView
            android:id="@+id/album_active_list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:choiceMode="singleChoice"
            android:background="@drawable/container_dropshadow"
            android:layout_below="@+id/explanation_wrapper" />
    </RelativeLayout>
</RelativeLayout>

我需要让中间层滚动到底层。当顶部没有空间时(中间层完全滚动到底层),那么我需要顶层滚动到中间层。

我将如何实现这种行为?

4

1 回答 1

1

在尝试了 XML 布局之后,我自己找到了答案。相关的 XML 是这样的:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:id="@+id/scroll_view"
  android:background="#ffffff"
  android:layout_width="match_parent"
  android:layout_height="match_parent">

      <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff00ff"
        android:padding="15dip"
        android:text="Hello ParallaxScrollView 1 !"
        android:layout_marginTop="5dip"/>

     <ScrollView
        android:id="@+id/sv"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="@android:color/transparent"
            android:orientation="vertical" >

            <!-- This Linearlayout is used as padding but 60dip is fixed so that needs to be calculated dynamically-->
            <LinearLayout
                android:layout_width="fill_parent"
                android:background="@android:color/transparent"
                android:layout_height="60dip"
                android:baselineAligned="true"
                android:orientation="vertical"/>

             <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="#dddddd"
                android:orientation="vertical" >

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="#ff0000"
                        android:padding="15dip"
                        android:text="Hello ParallaxScrollView 1 !" 
                        android:layout_marginTop="5dip"/>

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="#ff0000"
                        android:padding="15dip"
                        android:text="Hello ParallaxScrollView 1 !" 
                        android:layout_marginTop="5dip"/>

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="#ff0000"
                        android:padding="15dip"
                        android:text="Hello ParallaxScrollView 1 !" 
                        android:layout_marginTop="5dip"/>

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="#ff0000"
                        android:padding="15dip"
                        android:text="Hello ParallaxScrollView 1 !" 
                        android:layout_marginTop="5dip"/>

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="#ff0000"
                        android:padding="15dip"
                        android:text="Hello ParallaxScrollView 1 !" 
                        android:layout_marginTop="5dip"/>

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="#ff0000"
                        android:padding="15dip"
                        android:text="Hello ParallaxScrollView 1 !" 
                        android:layout_marginTop="5dip"/>

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="#ff0000"
                        android:padding="15dip"
                        android:text="Hello ParallaxScrollView 1 !" 
                        android:layout_marginTop="5dip"/>

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="#ff0000"
                        android:padding="15dip"
                        android:text="Hello ParallaxScrollView 1 !" 
                        android:layout_marginTop="5dip"/>

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="#ff0000"
                        android:padding="15dip"
                        android:text="Hello ParallaxScrollView 1 !" 
                        android:layout_marginTop="5dip"/>   

                </LinearLayout>

        </LinearLayout>

     </ScrollView>



</RelativeLayout>
于 2013-09-19T21:48:16.850 回答