を使用して:
compile 'com.Android.support:design:23.0.0'
compile 'com.Android.support:appcompat-v7:23.0.0'
compile 'com.Android.support:cardview-v7:23.0.0'
compile 'com.Android.support:recyclerview-v7:23.0.0'
プロジェクトで Cheesesquare が更新されました。
チーズの詳細については、2枚のカードを削除します(1枚のみ)。空白を表示するツールバーの崩壊を防ぐ方法はありますか?
Cheesesquare の例でこのような動作を実装するには、NestedScrollViewのAndroid:layout_height
パラメーターをwrap_content
に変更するだけです。画面に収まるほど小さい場合、コンテンツによるスクロールを防ぎます。
また、CollapsingToolbarLayout
によるスクロールを防ぐには、layout_scrollFlags
パラメーターをAppBarLayout.LayoutParams.SCROLL_FLAG_SNAP
値にプログラムで設定する必要があります。
ここ これを行う方法を説明しました。
これには以下のコードを使用できます。
public static void stopScroll() {
AppBarLayout.LayoutParams toolbarLayoutParams = (AppBarLayout.LayoutParams) collapsing_toolbar.getLayoutParams();
toolbarLayoutParams.setScrollFlags(0);
collapsing_toolbar.setLayoutParams(toolbarLayoutParams);
CoordinatorLayout.LayoutParams appBarLayoutParams = (CoordinatorLayout.LayoutParams) appbar.getLayoutParams();
appBarLayoutParams.setBehavior(null);
appbar.setLayoutParams(appBarLayoutParams);
}
public static void startScroll() {
AppBarLayout.LayoutParams toolbarLayoutParams = (AppBarLayout.LayoutParams) collapsing_toolbar.getLayoutParams();
toolbarLayoutParams.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS);
collapsing_toolbar.setLayoutParams(toolbarLayoutParams);
CoordinatorLayout.LayoutParams appBarLayoutParams = (CoordinatorLayout.LayoutParams) appbar.getLayoutParams();
appBarLayoutParams.setBehavior(new AppBarLayout.Behavior());
appbar.setLayoutParams(appBarLayoutParams);
}
Xmlではプロパティを使用しました
app:layout_scrollFlags="snap"
in <Android.support.design.widget.CollapsingToolbarLayout
アクティビティでフォロー
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setTitle(null);
toolbar.setCollapsible(false);
現在は機能しています。
@Vishalの答えに触発されたデータバインディングソリューション
<com.google.Android.material.appbar.AppBarLayout
<com.google.Android.material.appbar.CollapsingToolbarLayout
app:enableCollapsingScroll="@{listItems.size > 0}"
@BindingAdapter("app:enableCollapsingScroll")
fun setCollapsingToolbarLayoutScrollEnabled(collapsingToolbarLayout: CollapsingToolbarLayout, enabled: Boolean?) {
val lp = collapsingToolbarLayout.layoutParams as AppBarLayout.LayoutParams
if (enabled.orFalse()) {
lp.scrollFlags = AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL or AppBarLayout.LayoutParams.SCROLL_FLAG_EXIT_UNTIL_COLLAPSED
} else {
lp.scrollFlags = AppBarLayout.LayoutParams.SCROLL_FLAG_SNAP
}
collapsingToolbarLayout.layoutParams = lp
}
AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) activityUserGroupProfleBinding.collapsingToolbarLayout.getLayoutParams();
if (logic) {
params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_EXIT_UNTIL_COLLAPSED);
} else {
params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SNAP);
}
activityUserGroupProfleBinding.collapsingToolbarLayout.setLayoutParams(params);
最初にバーを折りたたむための私の作業コードは次のとおりです。
_appbar.setExpanded(false);
AppBarLayout _appbar = (AppBarLayout) findViewById(R.id.appbar);
_appbar.setExpanded(false);
これがレイアウトxmlです
<Android.support.design.widget.AppBarLayout
Android:id="@+id/appbar"
Android:layout_width="match_parent"
Android:layout_height="@dimen/detail_backdrop_height"
Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
Android:fitsSystemWindows="true">
<Android.support.design.widget.CollapsingToolbarLayout
Android:id="@+id/collapsing_toolbar"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
Android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginStart="48dp"
app:expandedTitleMarginEnd="64dp">
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="?attr/actionBarSize"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_collapseMode="pin" />
</Android.support.design.widget.CollapsingToolbarLayout>
</Android.support.design.widget.AppBarLayout>