Mikepenz Material Drawer: начать вертикально с середины экрана - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь заставить мини-ящик запускаться вертикально с середины экрана

и я мог бы сделать это, когда использовал пользовательский CrossFade и добавил в метод withContent () представление

но проблема, когда я использую пользовательский CrossFade, что он не добавляет прозрачный backGround

так что я последовал за этой библиотекой

https://github.com/mikepenz/CrossfadeDrawerLayout

и есть две проблемы, которые я хочу изменить

сначала я хочу, чтобы ящик начинался с середины экрана

секунду я хочу, чтобы ящик стал частью экрана

я имею в виду не делать эту тень или макет, когда он открыт

я хочу, чтобы минидравер всегда существовал

как это this is the example

и это мой результат

this is my result вот мой код

публичный статический MiniDrawer initializeDrawer (Контекст деятельности, панель инструментов панели инструментов, int mainView, Bundle saveInstanceState) {

CrossfadeDrawerLayout crossfadeDrawerLayout = new CrossfadeDrawerLayout(context);

Drawer result = new DrawerBuilder()
    .withActivity(context)
    .withSavedInstance(savedInstanceState)
    .withShowDrawerOnFirstLaunch(true)
    .withDrawerLayout(crossfadeDrawerLayout)
    .withHasStableIds(true)
    .withDrawerWidthDp(72)
    .withGenerateMiniDrawer(true)
    .addDrawerItems(

    )
    .withSavedInstance(savedInstanceState)
    .build();

crossfadeDrawerLayout.setMaxWidthPx(DrawerUIUtils.getOptimalDrawerWidth(context));

MiniDrawer miniResult = result.getMiniDrawer();
View view = miniResult.build(context);

view.setBackgroundColor(UIUtils.getThemeColorFromAttrOrRes(context, com.mikepenz.materialdrawer.R.attr.material_drawer_background, com.mikepenz.materialdrawer.R.color.material_drawer_background));


crossfadeDrawerLayout.getSmallView().addView(view, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
crossfadeDrawerLayout.openDrawer(GravityCompat.START);

result.getDrawerLayout().setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);

return miniResult.withCrossFader(new ICrossfader() {
  @Override
  public void crossfade() {
    crossfadeDrawerLayout.crossfade(400);
    if (isCrossfaded()) {
      result.getDrawerLayout().closeDrawer(GravityCompat.START);
    }

  }

  @Override
  public boolean isCrossfaded() {
    return crossfadeDrawerLayout.isCrossfaded();
  }
});

}

спасибо

...