2016-09-30 60 views
-2

我們有app:layout_behavior =「@ string/appbar_scrolling_view_behavior」;這對於工具欄來說非常完美。 我創建自定義的BottomBar並且想要反轉導致此標誌的移動方向。 有沒有什麼想法如何實現它?AppBar Scrolling Behavior

+0

你的問題是相當不清楚.... – PN10

+0

我想延長這個標誌的功能的行爲和反轉方向沿y軸移動。例如,我們有recyclerview,向下滾動,工具欄隱藏到頂部,底部欄到機器人,向上滾動,全部再次顯示 –

+0

從這個Mario檢查答案.http://stackoverflow.com/questions/32465548/add-app-bar -scroll-view-behavior-to-multiple-views-in-coordinatorlayout。從我的理解你的評論是你需要應用程序滾動行爲的多個意見...是不是?還有一件事是檢查如何形成和提出問題,因此你應該清楚地解釋你的問題陳述......你的頭銜和身體應該更清楚...... – PN10

回答

0

我找到了解決方案!

我們需要這樣的

public class BottomBarBehavior<V extends View> extends CoordinatorLayout.Behavior<V> { 

    private int defaultDependencyTop = -1; 

    public BottomBarBehavior(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

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

    @Override 
    public boolean onDependentViewChanged(CoordinatorLayout parent, V child, View dependency) { 
     if (defaultDependencyTop == -1) { 
      defaultDependencyTop = dependency.getTop(); 
     } 
     child.setTranslationY(-dependency.getTop() + defaultDependencyTop); 
     return true; 
    } 
} 
0

愛德華Poida您的解決方案擴展CoordinatorLayout.Behavior時,而底部的導航是隱藏一個改變電話的方向不能正常工作。 Screenshot

我已經修改您的解決方案的一個行,它爲我工作得更好:

public class BottomNavigationBehavior<V extends View> extends CoordinatorLayout.Behavior<V> 
{ 

private int defaultDependencyTop = -1; 

public BottomNavigationBehavior(Context context, AttributeSet attrs) 
{ 
    super(context, attrs); 
} 

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

@Override 
public boolean onDependentViewChanged(CoordinatorLayout parent, V child, View dependency) 
{ 
    if (defaultDependencyTop == -1) 
    { 
     defaultDependencyTop = dependency.getTop(); 
    } 
    child.setTranslationY(-dependency.getTop()*2); 
    return true; 
} 
} 
+0

這並沒有提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。如果[賺取](// meta.stackoverflow.com/q/146472)足夠[聲譽](// stackoverflow.com/help/whats-reputation),您將可以[對任何帖子發表評論](// stackoverflow .COM /幫助/權限/評論)。 – Machavity

+0

這不提供問題的答案。一旦你有足夠的[聲譽](https://stackoverflow.com/help/whats-reputation),你將可以[對任何帖子發表評論](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/16911732) – Pehlaj