2015-10-16 7 views
7

私はコーディネータレイアウト内に配置されたビューページャを持っています。ビューページャの特定のフラグメントには、リサイクラビューとフラグメントの一番下にビューがあります。問題は、最初はフラグメントの一番下のビューが隠されていて、上にスクロールしたときにのみ表示されるということです。ビューを画面の最下部に残しておきたい。コーディネータレイアウト内のビューページャのフラグメントの一番下のスティックビュー

ファイル名:activity_main.xml

<android.support.design.widget.AppBarLayout 
    android:id="@+id/appbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     style="@style/ToolBarStyle" 
     android:layout_width="match_parent" 
     android:layout_height="?actionBarSize" 
     android:layout_alignParentTop="true" 
     android:background="@color/toolbarColor" 
     android:contentInsetEnd="16dp" 
     android:contentInsetRight="16dp" 
     android:minHeight="?actionBarSize" 
     android:paddingBottom="0dp" 
     app:layout_scrollFlags="scroll|enterAlways" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

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

    <android.support.v4.view.ViewPager 
     android:id="@+id/pager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="com.dekorate.android.Utils.AppBarLayoutBehavior" /> 
</android.support.design.widget.CoordinatorLayout> 
+0

問題の解決方法をお探しですか?私が考えているのは、固定されたビューをフラグメントからCoordinatorLayoutに移動することですが、これは実現可能な解決策ではありません。 – darnmason

+1

@darnmasonアクティビティにAppBarLayout.OnOffsetChangedListenerを実装します。 onOffsetChangedメソッドでは、現在スクロールしている高さに応じて、下部のビューの余白を調整します。 – arkit

+0

乾杯、十分にうまくいくようです! – darnmason

答えて

0

活動にAppBarLayout.OnOffsetChangedListenerを実装します。 onOffsetChangedメソッドでは、現在スクロールしている高さに応じて、下部のビューの余白を調整します。

ここ
@Override 
public void onOffsetChanged(AppBarLayout appBarLayout, int i) { 

    RelativeLayout.LayoutParams bottomLayoutParams = (RelativeLayout.LayoutParams)fragment.bottomLayout.getLayoutParams(); 
    bottomLayoutParams.setMargins(0,0,0,(actionBarHeight + i)); 
    fragment.bottomLayout.setLayoutParams(bottomLayoutParams); 

} 

フラグメントあなたのフラグメントとbottomLayoutのインスタンスは、下部の図です。

関連する問題