2016-04-13 11 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

のように真を返すdispatchTouchEventをオーバーライドし、私はあなたが線形またはイメージを持っていない人のための相対的でシンプルなレイアウトを作成するべきだと思います。 ContentViewを設定する前に確認してください。 –

+0

これを試す:http://stackoverflow.com/questions/33193223/using-appbarlayout-behavior-dragcallback-to-control-scroll-of-collapsing-toolbar/33230473#33230473 –

答えて

0

あなたは通常通りappBarLayoutにsetExpanded(false)を使用しますが、私はこのlinkでアイデアを踏襲

以下のようにカスタムCollapsingToolbarLayoutを作成する必要があります。

オーバーライドCollapsingToolbarLayoutこの

public class MyCustomCollapsingToolbarLayout extends CollapsingToolbarLayout { 

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

    @Override 
    public boolean dispatchTouchEvent(MotionEvent ev) { 
     return true; 
    } 
} 
関連する問題