2016-04-13 26 views
0

我的應用程序提供不同的內容,其中一些是與圖像和其他人不是。 對於那些有圖像我使用CollapsingToolbarLayout它工作正常,但對於那些沒有圖像我想摺疊CollapsingToolbarLayout並防止擴大,禁用它。禁用CollapsingToolbarLayout

這裏是我的項目活動代碼:

public class ItemActivity extends BaseActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_item); 

     collapsingToolbar = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar); 
     collapsingToolbar.setStatusBarScrimResource(R.color.black_transparent_190); 
     collapsingToolbar.setContentScrimResource(R.color.gray_transparent_150); 
     collapsingToolbar.setExpandedTitleTextAppearance(R.style.MyTheme_Toolbar_Title_Expanded); 

     appBarLayout = (AppBarLayout) findViewById(R.id.appbar); 
     appBarLayout.setExpanded(false); 
     loadData(); 
    } 

    public void loadData() { 
     if(haveImage) { 
      // loading data and image 
      appBarLayout.setExpanded(true, true); 
     } else { 
      appBarLayout.setExpanded(false); 
     } 
    } 
} 

我已經嘗試

AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) collapsingToolbar.getLayoutParams(); 
params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_EXIT_UNTIL_COLLAPSED); 
collapsingToolbar.setLayoutParams(params); 

CollapsingToolbarLayout.LayoutParams mParams = new CollapsingToolbarLayout.LayoutParams(collapsingToolbar.getLayoutParams()); 
mParams.setCollapseMode(CollapsingToolbarLayout.LayoutParams.COLLAPSE_MODE_OFF); 
mToolbar.setLayoutParams(mParams); 

它的工作原理,這是防止崩潰! 但摺疊工具欄已展開!

如何摺疊工具欄並禁用滾動事件?

+0

我想你應該創建一個簡單的佈局與線性或相對那些誰沒有圖像。在設置ContentView之前檢查它。 –

+0

試試這個:http://stackoverflow.com/questions/33193223/using-appbarlayout-behavior-dragcallback-to-control-scroll-of-collapsing-toolbar/33230473#33230473 –

回答

0

您使用appBarLayout setExpanded(假)是正常的,但你需要創建一個自定義CollapsingToolbarLayout如下

我跟着這個link的想法。

覆蓋CollapsingToolbarLayout並覆蓋dispatchTouchEvent返回true這樣

public class MyCustomCollapsingToolbarLayout extends CollapsingToolbarLayout { 

    public MyCustomCollapsingToolbarLayout(Context context) { 
     super(context); 
    } 

    @Override 
    public boolean dispatchTouchEvent(MotionEvent ev) { 
     return true; 
    } 
}