0

아래 도구 모음을 CoordinatorLayout에 추가하는 방법을 알아 냈지만 아래쪽을 숨기는 방법을 알아낼 수 없습니다. RelativeLayout.CoordinatorLayout을 사용할 때 위쪽 및 아래쪽 도구 모음 숨기기

하단에 @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"를 사용했지만, 단지 AppBarLayout에 도구 모음을 고정하는 것이 내가 (아래 RelativeLayout에 대한 다른 방법으로 주위를 트리거 할 @string/appbar_scrolling_view_behavior를 얻을 수 있다면 전체가 아닌 CoordinatorLayout

만 줄 표시 반대 방향 방아쇠를 당길 예정이었습니다

답변

1

하단 Toolbar에 사용자 정의 CoordinatorLayout.Behavior을 추가해야합니다. ToolbarCoordinatorLayout의 직계 자녀 여야합니다.

마크가로 : 방법에 사용자 정의 행동 재정에서

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; 
} 

와 두 번째입니다 :

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의 일부 측정을 번역하고 그에 따라보기로 설정하는 것입니다
관련 문제