7

多くの断片を含む単一のアクティビティアンドロイドアプリがあります。リスト画面を表示しているときに、にapp:layout_scrollFlags="scroll|enterAlways"というプロパティを使用したいと考えています。詳細な部分では、画像にCollapsingToolbarLayoutを使用したいと思っています。これは1つのアクティビティアプリなので、私はToolbarしか持っていません。両方の場合に合わせてレイアウトをプログラムで変更することは可能ですか?ツールバーとCollapsingToolbarLayoutのスクロールフラグをプログラムで変更する

答えて

9

はい。 CollapsingToolbarLayoutフラグメントからツールバーのフラグメントに移動しているとしましょう。

  1. あなたはAppBarLayout.setExpanded(false)を使用してAppBarLayout崩壊します。

  2. 必要に応じてスクロールフラグを変更します。

    AppBarLayout.LayoutParams p = (AppBarLayout.LayoutParams) toolbar.getLayoutParams(); 
    p.setScrollFlags(...); 
    toolbar.setLayoutParams(p); 
    

    必要に応じてCollapsingToolbarLayoutと同じです。私もこの問題を抱え

    collapsingToolbarParams.setScrollFlags(0); //no flags for ctl 
    toolbarParams.setScrollFlags(SCROLL_FLAG_SCROLL | SCROLL_FLAG_ENTER_ALWAYS); //new flags for toolbar 
    
+0

:私はそれが何かのようにする必要がありますね。私は 'setLayoutParams()'メソッドを呼び出すことを忘れていたようです。答えをありがとう! – Mauker

+1

setScrollFlags(0)はうまく動作しますが、これを次のように設定しようとします。params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS | AppBarLayout.LayoutParams.SCROLL_FLAG_SNAP); //すべてのスクロールフラグをクリアする toolbar.setLayoutParams(params);動作しません.. – iBobb

関連する問題