在API 21中CollapsingToolbar奇怪的行为

时间:2016-08-26 01:29:54

标签: android android-studio android-collapsingtoolbarlayout android-appbarlayout

由于某种原因,我得到这个奇怪的状态,状态栏似乎已经移动到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);
}

odd state

更新这个答案解决了我的问题:https://stackoverflow.com/a/37105296/4138919

0 个答案:

没有答案