0

ボトムツールバーをCoordinatorLayoutに追加する方法を知りましたが、ボトムを非表示にする方法を見つけることができません。RelativeLayoutCoordinatorLayoutを使用するときにトップとボトムのツールバーを表示しない

@string/appbar_scrolling_view_behaviorを下に追加すると、ユーザーが上にスクロールすると下のバーが表示されます。ユーザーが上にスクロールしたときに、希望の効果は、の両方の上部バーと下部バーの表示されますです。どのように私はこれにアプローチするだろう任意のアイデア?私のViewPagerには他のライブラリの複雑なコードが含まれているので、すべてのタブに共通のボトムバー(単純なアクション用)が必要です。

フローティングアクションボタンは、ユーザーがタップして展開する必要があるボタン内でアクションのコレクションを隠すため、好ましくありません。以下は、タブとページャーを管理するためのxmlレイアウトです:

<?xml version="1.0" encoding="utf-8"?> 
<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="wrap_content" 
    xmlns:ads="http://schemas.android.com/tools"> 

<android.support.design.widget.AppBarLayout 
    android:id="@+id/app_bar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 


    <android.support.design.widget.CollapsingToolbarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:layout_scrollFlags="scroll|enterAlways"> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tab_layout" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="#1378BB" 
      app:layout_scrollFlags="scroll|enterAlways"/> 


    </android.support.design.widget.CollapsingToolbarLayout> 

</android.support.design.widget.AppBarLayout> 

     <android.support.v4.view.ViewPager 
      android:id="@+id/pager" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"/> 



    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_scrollFlags="scroll|enterAlwaysCollapsed" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     > 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/tabs" 
      android:background="#3202c4" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:layout_scrollFlags="scroll|enterAlwaysCollapsed" 
      android:layout_alignParentBottom="true" 
      android:layout_marginBottom="100dp" 
      /> 
    </RelativeLayout> 

</android.support.design.widget.CoordinatorLayout> 

ご意見やご提案はありますか?私はCollapsingToolbarLayout内のツールバーを配置しようとしたlayout_alignParentBottom="true"を使用していますが、スクロールするときにのみ、私は@string/appbar_scrolling_view_behaviorが下RelativeLayoutのために他の方法で回避をトリガするために得ることができる場合にのみ、全体CoordinatorLayout

AppBarLayoutにツールバーを固定されないということは(バーを表示させます反対方向これはトリガーすることを意図したものです)

答えて

1

ToolbarにカスタムCoordinatorLayout.Behaviorを追加する必要があります。 Toolbarは、CoordinatorLayoutの直接の子である必要があります。

とマークそれ:メソッドにカスタム動作をオーバーライドで

app:layout_behavior="{name_of_the_class_of_behavior}" 
app:layout_scrollFlags="scroll|enterAlways" 

@Override 
public boolean layoutDependsOn(CoordinatorLayout parent, View fab, View dependency) { 
    return dependency instanceof AppBarLayout; 
} 

2つ目は、次のとおりです。

あなたがターゲットの可視性を制御
public boolean onDependentViewChanged(CoordinatorLayout parent, View fab, View dependency) 

ビュー。

CoordinatorLayout.LayoutParams lp = (CoordinatorLayout.LayoutParams) view.getLayoutParams(); 
int viewBottomMargin = lp.bottomMargin; 
int distanceToScroll = view.getHeight() + viewBottomMargin; 
float ratio = dependency.getY()/toolbarHeight; 
view.setTranslationY(-distanceToScroll * ratio); 

もっとhere

それについて:基本的に必要とされるのは、示されているもの AppBarLayoutの一部測るそれを翻訳し、それに応じてビューにそれを設定することです
関連する問題