ツールバーがおそらくCoordinatorLayout内にあるAppBarLayout内にある場合、このようなものが機能するはずです。
AppBarLayout appBarLayout = (AppBarLayout)findViewById(R.id.appBar);
appBarLayout.setExpanded(true, true);
またはそれを崩壊させる
AppBarLayout appBarLayout = (AppBarLayout)findViewById(R.id.appBar);
appBarLayout.setExpanded(false, true);
定義はこちら
setExpanded(boolean expanded, boolean animate)
このメソッドは、サポートライブラリのv23から利用できることに注意してください。参照用にいくつかの ドキュメント があります。重要なことは、「AppBarLayoutのスクロールと同様に、メソッドは、このレイアウトがCoordinatorLayoutの直接の子であることに依存しています。 "これが役に立てば幸いです!
それはあなたが探しているものですか?
Toolbar toolbar = findViewById(R.id.toolbar); // or however you need to do it for your code
AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
params.setScrollFlags(0); // clear all scroll flags
リンク: デザインサポートライブラリを使用する場合、プログラムでツールバーのスクロールを有効/無効にする方法
ツールバーを非表示にするには、次のようにできます:
toolbar.animate().translationY(-toolbar.getBottom()).setInterpolator(new AccelerateInterpolator()).start();
もう一度表示したい場合は、次のように呼び出します:
toolbar.animate().translationY(0).setInterpolator(new DecelerateInterpolator()).start();
私の問題は@Artemと非常によく似ていて、多くの修正を試みましたが、どれもうまくいきませんでした。 AppBarLayout
を使用すると、@ Jraco11の答えは正しいです。 @ johnrao07は私には役に立たなかった。しかし、Toolbar
を使用すると、この問題の完璧な解決策が見つかりました。
ツールバーをプログラムで非表示にするには
if (toolbar.getParent() instanceof AppBarLayout){
((AppBarLayout)toolbar.getParent()).setExpanded(false,true);
}
ツールバーをプログラムで表示するには
if (toolbar.getParent() instanceof AppBarLayout){
((AppBarLayout)toolbar.getParent()).setExpanded(true,true);
元の回答を参照(@Android HHTによる回答):-programmatically-show- toolbar-after-hidden-by-scrolling-Android-design-library