CollapsingToolbarLayout |スクロールとレイアウトの問題
向きと画面サイズに基づいてレイアウトを変更できる2つの異なるフラグメントを使用したい
ImageView
)CollapsingToolbarLayout
では、Toolbar
を展開してfullHeader Image
を表示できません。
Top
はカットされますが、下部が表示されます。Toolbar
はPin
に設定されますが、スクロールすると非表示になります
Header Image
だけが消えるはずですが、代わりにAppbar全体が非表示になりますExpanded Toolbar
を表示するためにスクロールすると、Expanded Toolbar
が最大の高さに達するまで空のビューが表示されます。
Expanded Toolbar
とToolbar
の両方が非表示になった後Up Arrow
はToolbar
に表示されません
<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>
@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
_Android:fitsSystemWindows="true"
_をAppBarLayout
、CollapsingToolbarLayout
、およびImageView
に追加します。
私はあなたの画像の一部がステータスバーの下にあると推測しています(これらの行が欠落しているため)、それがあなたが画像の上部を見ることができない理由です。
_collapseMode="pin"
_は、ツールバーの折りたたみに対する反応にのみ影響します(そのため、collapseMode
ではなくscrollFlags
と呼ばれます)。
ほぼallCollapsingToolbarLayout
を使用する場合、scrollFlags
に_scroll|exitUntilCollapsed
_を使用する必要があります。これにより、下にスクロールしても折りたたまれたツールバーが表示されます。
これは、_scroll|enterAlways
_を使用しているためです。 #2に従ってフラグを変更します
関連する質問への回答で述べたように、getSupportActionBar().setDisplayHomeAsUpEnabled(true);
を呼び出してUpボタンを表示する必要があります。
_ @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
final Toolbar toolbar = (Toolbar) findViewById(R.id.anim_toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
CollapsingToolbarLayout collapsingToolbar =
(CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar);
collapsingToolbar.setTitle("Avengers: Age of Ultron");
}
_
Imageviewからこれらの2行を削除します
Android:scaleType="centerCrop"
Android:fitsSystemWindows="true"
削除する app:contentScrim="?attr/colorPrimary"
CollapsingToolBarLayout
タグ内のレイアウトXMLから。ツールバーに戻るボタンが表示されます