由于某种原因,我得到这个奇怪的状态,状态栏似乎已经移动到collapsingtoolbarlayout以下,状态栏为空。我反复向上和向下滑动CollapsingToolbarLayout时看到此问题。下图显示了collapsingToolbarLayout下方的蓝色水平线,我认为这实际上是状态栏? (我不确定)。我尝试在多个地方使用setFitSystemWindow(true),但似乎无法解决这个问题。
当我使用SCROLL_FLAG_ENTER_ALWAYS
标志时,问题似乎发生了。当我用SCROLL_FLAG_SNAP
交换它时不会发生这种情况。这在API 19中不会发生。
我正在使用以编程方式生成的collapsingToolbarLayout。
@Override
protected void onPostCreate(Bundle savedInstanceState)
{
super.onPostCreate(savedInstanceState);
CollapsingToolbarLayout collapsingToolbarLayout = new CollapsingToolbarLayout(this);
AppBarLayout.LayoutParams collapsingToolbarlayoutParams = new AppBarLayout.LayoutParams(AppBarLayout.LayoutParams.MATCH_PARENT,AppBarLayout.LayoutParams.MATCH_PARENT);
collapsingToolbarlayoutParams.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS |
AppBarLayout.LayoutParams.SCROLL_FLAG_EXIT_UNTIL_COLLAPSED);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
collapsingToolbarLayout.setContentScrimColor(ThemeUtil.resolveThemeColor(this, android.R.attr.colorPrimary));
} else {
collapsingToolbarLayout.setContentScrimColor(resources.getColor(R.color.primary_col));
}
appBarLayout.setFitsSystemWindows(true);
appBarLayout.addView(collapsingToolbarLayout, collapsingToolbarLayoutParams);
CollapsingToolbarLayout.LayoutParams primaryToolbarLayoutParams = new CollapsingToolbarLayout.LayoutParams(CollapsingToolbarLayout.LayoutParams.MATCH_PARENT, actionBarSize);
primaryToolbarLayoutParams.setCollapseMode(CollapsingToolbarLayout.LayoutParams.COLLAPSE_MODE_PIN);
primaryToolbarParams.gravity = Gravity.TOP;
collapsingToolbarLayout.addView(primaryToolbar, primaryToolbarLayoutParams);
LayoutInflater inflater = getLayoutInflater();
View imageLayout = inflater.inflate(R.layout.sell_augmented_list_item_background, collapsingToolbarLayout, false);
ImageView backgroundImage = (ImageView)imageLayout.findViewById(R.id.m_Image); backgroundImage.setBackgroundResource(R.drawable.green_stock);
collapsingToolbarLayout.addView(backgroundImage, 0);
View mLayout = inflater.inflate(R.layout.m_layout, collapsingToolbarLayout, false);
exampleText.setText("Some Text");
collapsingToolbarLayout.addView(mLayout, 1);
}
更新这个答案解决了我的问题:https://stackoverflow.com/a/37105296/4138919