私はAndroid support design 'com.Android.support:design:22.2.1'を使用しています。私の問題は、スクロールにコンテンツがない場合でも、折りたたみツールバーが折りたたみアクションを有効にしていることです。スクロールにコンテンツがない場合、ビューの縮小を削除する必要があります。
私の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:fitsSystemWindows="true"
Android:background="@Android:color/white"
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="match_parent"
Android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<fragment
Android:id="@+id/pawfile_header"
Android:name="com.lightbulb.pawesome.fragments.PawfileHeaderFragment"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginLeft="10dp"
Android:layout_marginTop="10dp"
Android:fitsSystemWindows="true"
app:layout_collapseMode="parallax" />
</Android.support.design.widget.CollapsingToolbarLayout>
</Android.support.design.widget.AppBarLayout>
<fragment
Android:id="@+id/pawfile_timeline"
Android:name="com.lightbulb.pawesome.user_timeline.PawesomeUserTimelineFragment"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</Android.support.design.widget.CoordinatorLayout>
DPATE QUESTION:
ビューの縮小の無効化と有効化が完了しました。折りたたみを無効にするために、次のコード行を使用しました。
AppBarLayout.LayoutParams appbarParams = (AppBarLayout.LayoutParams) collapsingToolbar.getLayoutParams();
appbarParams.setScrollFlags(0);
collapsingToolbar.setLayoutParams(p);
問題は、appbarがスクロールフラグの高度を強制的に0に設定することです。appbar.setElevation(0)を使用しようとしましたが、効果がありません。アプリバーから標高を削除するにはどうすればよいですか?
appbarlayout参照を取得し、setScrollFlagsを設定します。
AppBarLayout.LayoutParams p = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
p.setScrollFlags(0);
toolbar.setLayoutParams(p);
標高を削除するには、appbarParams.setScrollFlags(-1);
とappBarLayout.setExpanded(true, true)
を試してください。
フラグメントにrecyclerViewがある場合は、recyclerView.setNestedScrollingEnabled(false);
を試してください
折りたたみツールバーの折りたたみを停止するには
app:layout_scrollFlags="scroll|exitUntilCollapsed"
XMLファイル内..そのコードを削除できます