2016-04-13 45 views
0

Uygulamamın farklı içerikler sağlaması, bazılarının görüntü ve başkalarıyla birlikte olmaması. Resimde olanlar CollapsingToolbarLayout kullanıyorum için iyi çalışıyor ama görüntü olmayanlar için çökmesini istiyorum CollapsingToolbarLayout ve genişlemesini önlemek, devre dışı bırakın.CollapsingToolbarLayout'u devre dışı bırakma

İşte benim öğe etkinlik kodudur:

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

Zaten

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

ve

Çalışıyor
CollapsingToolbarLayout.LayoutParams mParams = new CollapsingToolbarLayout.LayoutParams(collapsingToolbar.getLayoutParams()); 
mParams.setCollapseMode(CollapsingToolbarLayout.LayoutParams.COLLAPSE_MODE_OFF); 
mToolbar.setLayoutParams(mParams); 

denedi, bu çöken önlemek var! Ancak daraltma araç çubuğu genişletildi!

Araç çubuğunu daraltabilir ve olayları kaydırmak için nasıl devre dışı bırakabilirim?

+0

gibi gerçek dönen ben görüntüyü yok olanlar için basit Doğrusal düzenini veya Bağıl oluşturmak gerektiğini düşünüyorum. ContentView'ı ayarlamadan önce kontrol edin. –

+0

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

cevap

0

Normal olarak appBarLayout üzerinde (yanlış) setExpanded kullanır, ancak bu link fikri takip

aşağıdaki gibi özel bir CollapsingToolbarLayout oluşturmanız gerekir.

geçersiz kılma CollapsingToolbarLayout ve geçersiz dispatchTouchEvent bu

public class MyCustomCollapsingToolbarLayout extends CollapsingToolbarLayout { 

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

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