CollapsingToolbarLayout |滚动和布局问题2

时间:2015-06-17 21:09:17

标签: android xml material-design android-design-library android-collapsingtoolbarlayout

相关问题

CollapsingToolbarLayout | Scrolling and layout issues

化背景

我想使用2个不同的片段,这些片段允许我根据方向和屏幕尺寸更改布局

  1. 标题图片(目前仅为ImageView
  2. 可滚动内容
  3. 问题

    1. CollapsingToolbarLayout不允许我展开Toolbar以查看完整 Header Image

      • 它显示了大部分图像,但不是全部。 Top被剪切,但底部可见。
    2. Toolbar设置为Pin,但在滚动时隐藏

      • 只有Header Image应该消失,而我的整个Appbar会隐藏
    3. 滚动查看Expanded Toolbar时,会有一个空视图,直到Expanded Toolbar达到最大高度。

      • Expanded ToolbarToolbar本身隐藏后
    4. Up Arrow未显示Toolbar

    5. 代码

      Layout.xml

      <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:app="http://schemas.android.com/apk/res-auto"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:fitsSystemWindows="true">
      
          <android.support.design.widget.AppBarLayout
              android:id="@+id/appbar"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
      
              <android.support.design.widget.CollapsingToolbarLayout
                  android:id="@+id/collapsing_toolbar"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  app:contentScrim="?attr/colorPrimary"
                  app:expandedTitleMarginEnd="16dp"
                  app:expandedTitleMarginStart="48dp"
                  app:layout_scrollFlags="scroll|enterAlways">
      
                  <ImageView
                      android:id="@+id/header"
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:background="@drawable/download"
      
                      android:scaleType="centerCrop" />
      
                  <android.support.v7.widget.Toolbar
                      android:id="@+id/anim_toolbar"
                      android:layout_width="match_parent"
                      android:layout_height="?attr/actionBarSize"
      
                      app:layout_collapseMode="pin" />
      
              </android.support.design.widget.CollapsingToolbarLayout>
      
          </android.support.design.widget.AppBarLayout>
      
          <android.support.v4.widget.NestedScrollView
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:layout_below="@+id/anim_toolbar"
              app:layout_behavior="@string/appbar_scrolling_view_behavior">
      
              <fragment
                  android:id="@+id/detail"
                  android:name="<package>.<fragment_name>"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent" />
      
          </android.support.v4.widget.NestedScrollView>
      
      </android.support.design.widget.CoordinatorLayout>
      

      OnCreate中

      @Override
      protected void onCreate(Bundle savedInstanceState) {
      
          super.onCreate(savedInstanceState);
          setContentView(R.layout.test);
      
          final Toolbar toolbar = (Toolbar) findViewById(R.id.anim_toolbar);
          setSupportActionBar(toolbar);
      
          CollapsingToolbarLayout collapsingToolbar = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar);
          collapsingToolbar.setTitle("Avengers: Age of Ultron");
      
      }
      

      1 2 3

      4 5 6

3 个答案:

答案 0 :(得分:32)

问题1

let containerView = UIView() containerView.addSubview(viewController.view) 添加到您的android:fitsSystemWindows="true"AppBarLayoutCollapsingToolbarLayout

我猜你的图像的一部分位于状态栏下方(由于缺少这些线条),这就是为什么你看不到图像的顶部。

问题2

ImageView仅影响工具栏对崩溃的反应(因此称为collapseMode="pin"而不是collapseMode)。

在使用scrollFlags的几乎所有情况下,您应该CollapsingToolbarLayout使用scroll|exitUntilCollapsed - 即使向下滚动,这也可以保持折叠的工具栏可见

问题3

这是因为使用了scrollFlags。按照#2

更改标记

问题4

正如相关问题的答案中所述,您需要致电scroll|enterAlways以显示向上按钮:

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

答案 1 :(得分:0)

app:contentScrim="?attr/colorPrimary"标记中的布局XML中删除CollapsingToolBarLayout。它将显示工具栏中的后退按钮

答案 2 :(得分:0)

从Imageview中删除这两行

 android:scaleType="centerCrop"
            android:fitsSystemWindows="true"