如何在图像上滚动内容?

时间:2016-08-03 11:57:39

标签: android android-layout android-support-library androiddesignsupport

我正在尝试实施Play商店标题图片行为,但没有成功。 我能够滚动整个页面,但只能与ImageView内的CollapsingToolbarLayout一起使用。
我使用了example at the announcement of Android Design Support library。截至目前,活动的XML如下所示:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <android.support.design.widget.AppBarLayout
    android:layout_height="192dp"
    android:layout_width="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"
    layout_width="wrap_content" layout_height="wrap_content"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <android.support.design.widget.CollapsingToolbarLayout

        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_scrollFlags="scroll|exitUntilCollapsed" layout_width="wrap_content"
        layout_height="wrap_content">
        <ImageView

            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:id="@+id/imageView" android:layout_gravity="center_vertical" android:src="@android:mipmap/sym_def_app_icon"/>
        <android.support.v7.widget.Toolbar
            android:layout_height="?attr/actionBarSize"
            android:layout_width="match_parent"
            app:layout_collapseMode="pin" layout_width="wrap_content" layout_height="wrap_content"/>

    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
    <TextView android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:text="New Text"
              android:id="@+id/textView" android:layout_gravity="center_vertical"/>
</android.support.design.widget.CoordinatorLayout>

我很确定这里缺少一些东西。

1 个答案:

答案 0 :(得分:1)

您需要将UIView *headerView = self.headerView; [headerView setNeedsLayout]; [headerView layoutIfNeeded]; CGFloat height = [headerView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height; headerView.frame = ({ CGRect headerFrame = headerView.frame; headerFrame.size.height = height; headerFrame; }); NSLog(@"Header Frame : %@",headerView); self.reviewsTableView.tableHeaderView = headerView; 包裹在ScrollView内,而不是使用AppBarLayout

您还需要在CoordinatorLayout之后立即放置app:layout_behavior="@string/appbar_scrolling_view_behavior"作为主要网页内容。

Here's a layout from Chris Banes' cheesesquare sample app.